返回首页

{A}
{S0}简介
一段时间前,我发表了一篇关于如何检测一个给定的文本的编码的。在这篇文章中,我描述的文本分类的很长的路要走下一步:语言检测。
给出的解决方案是基于N - gram和词的出现比较。
这是适用于任何语言,使用的话(这其实不是所有语言的真实)。
根据模型和输入文本的长度,精度是70%之间(只是短期挪威,Swedisch和Danisch分类的quot; allquot模型)和99.8%,使用quot; defaultquot模型。背景
书面文字的语言检测可能是在自然语言处理(NLP)的最基本的任务之一。对于任何取决于一个未知的文字处理语言,首先要知道是哪种语言文字是书面英寸幸运的是,它是NLP的提供更容易挑战之一。我选择来实现的方法是众所周知的,非常简单。这个想法是,任何语言都有一套独特的性格(合作)发生。
第一步是收集这些统计数据应当可以探测所有语言。这是不容易,因为它可能听起来摆在首位。问题是,收集了大量的测试数据集(纯文本),只包含一种语言,不是特定的域。 (只有报纸上的文章可能缺乏使用这个词:"我??和直接引语。莎士比亚戏剧不会是最好的方法检测到当代的案文。医疗用品往往包含太多的域名甚至没有特定语言的具体条款(主要,次要,动脉等???.)而如果这不会是努力不够,不应该有版权的文本(我不知道如果这是一个真正的要求是受版权保护的文本的统计分析结果也?受版权保护的),我选择使用维基百科作为我的主要来源,我不得不做一些过滤,以quot; cleanquot;??从几乎任何物品,在发生过目前的英语短语来源没有什么语言都写在(其实我用巴贝尔本身检测的英语短语)。清理在没有办法的完美。维基百科包含了很多正确的名称(即,乐队的名字),往往含有"??或"??这是为什么这些话在许多语言中发生的,即使它们没有语言的一部分,这必须不一定是个劣势,因为Anglicism广泛应用在许多语言传播我为每种语言创建三个统计。字符集
有些语言有一个非常特定的字符集(例如,中国,日本和俄罗斯);他人,一些字符提供一个很好的提示,什么语言问题(如德国元音)。N - 克
标记,成字的文字后(如适用),每1出现,2和3克计算。有些N -克是非常特定于语言(例如,quot; THquot中英文)。单词列表
消歧的最后来源是实际使用的词。一些语言(如葡萄牙和西班牙的)中使用的字符和具体的N -克的出现几乎相同。尽管如此,不同的词是用来在不同的频率。
一组统计模型。我已经创建了一些子集的quot; allquot模式,以满足我的需求是最好的(见下表)。 "; commonquo​​t;模型包含10种语言在世界。 "小吗??和"默认??根据我的使用场景。如果你是从另一个世界的一部分,您的偏好可能会有所不同。所以,请概不负责,在我的选择,在该模型中包含什么语言罪。
的所有统计数据是有序的,按它们的出现排名。在演示应用程序,所有的模型可以详细研究。一个未知的文本分类很简单。文本标记化和三个表的统计产生。比较结果表模型中的所有表,并计算距离。从模型未知文本的最小距离比较表是最有可能的语言文字。
样本模型

回答

评论会员:yevgeniya30 时间:2012/01/25
是否有H / W最低要求?我们可以运行这个工具,在64位?
谢谢
评论会员:卡斯滕Zeumer 时间:2012/01/25
您好Yevgeniya,

64位的作品pefectly。

硬件的要求是:必须运行NET框架,你必须有一些备用MB的RAM大会和表。
更多的CPU和更多的内存通常会改善性能。
/卡迪

24小时是不够的
评论会员:yevgeniya30 时间:2012/01/25
使用这个工具,我发现,混合几种语言文本分析给出了奇怪的结果。例如,30%的英文文本,俄罗斯30%和30%的阿拉伯确认为[EN:30.87] [RU:28.23] [NL:21.08] [无:19.82](阿拉伯语是没有结果)。
是否可以配置这个工具的工作更好地与多语言文本?
,或者这是另一个版本的固定的吗?谢谢
评论会员:卡斯滕Zeumer 时间:2012/01/25
您好yevgeniya30,

我建议您的方案,从而提高检测率:

- 斯普利特在文本pragraphs或句子。最有可能的不同的语言将他们对齐。
- 减少检测语言的一个子集,IST最有可能发生在你的文字

也请记住,默认algorythm不分析孔文本,但只有第一个N(不记得确切的数字)的本地字符。这也许可以解释为什么阿拉伯语是不是在您的列表。
/卡迪

24小时是不够的
评论会员:yevgeniya30 时间:2012/01/25
。嗨
伟大的工具!
我不明白我是如何生成的txt文件,添加一个新的语言。还是可以找到它们?你能送我一个例子吗?

谢谢
评论会员:卡斯滕Zeumer 时间:2012/01/25
您好Yevgeniya,

学习数据应该是简单的文本文件。他们并不真正需要被建立。我从维基百科和一些其他来源(即项目Gutenberg)的矿井。
我不得不为每个languge 1GB约一和一些源数据的版权,所以我不能把它添加。
希望这有助于
/卡迪

24小时是不够的
评论会员:yevgeniya30 时间:2012/01/25
。感谢您的帮助
我试图做一个格鲁吉亚文本矿格鲁吉亚学习文件。该模型显示NGrams的话,但字符集是空的。难道是编码的问题吗?什么样的编码应为学习文件?
当我分析了从学习文件的文本,它确认为100%中国....{ BR} 与乌克兰相同。高兴得到任何帮助。谢谢。
修改日(星期四)8月18日,2011年6:55
评论会员:yevgeniya30 时间:2012/01/25
我固定致电BuildCharTable(这个新增加的语言):

TokenTable georgianTable =新TokenTable(新的FileInfo("georgian.txt "));{ BR}georgianTable.BuildCharTable()
s_AllModel.Add("KA",georgianTable);
评论会员:XXXX纳什 时间:2012/01/25
我多次尝试添加一个新的语言和模型,但我仍然无法做到这一点。做这些步骤后,新的模型和语言没有出现在列表中。任何人都可以帮助我,给我解释一下吗?我想加入"马来人"的语言和模型,作为训练语料malay.txt。很抱歉,因为我的英语不是很好,但我希望你们能理解我的问题在这里。谢谢
评论会员:卡斯滕Zeumer 时间:2012/01/25
喜纳什,

你说的是什么列表?

你创建一个新的模型,并添加新训练有素的语言?后加入你无法检测到新的语言?

请注意,你将有保存的新模式,如果你想使用新的语言没有训练。
卡斯滕/

24小时是不够的
评论会员:XX纳什XX 时间:2012/01/25
其实,我不知道我是否甚至已经创建了一个新的模式,增加了语言。我想使程序能够检测马来语,当我进入马来文本。实际上这是一个任务,我讲师。她要我们暴露在自然,所以她问我们,以搜寻任何开源NLP的相关方案,并尝试用它做的东西。所以我决定做语言标识符使用的N - gram,发现此页时,我正在寻找。我觉得另一个问题是,我不太接触到C#。所以这就是为什么我在与此,我认为它实际上只是一个简单的事情的问题。你能帮助我,向我解释如何添加新的模型/语言程序的步骤
评论会员:?卡斯滕Zeumer 时间:2012/01/25
喜纳什,

因为它是您的讲师给予的任务,我想她希望你学习的东西,一路上要解决的问题{S2}

其实我不能进入深度超过的文章已经没有。您应尽量阅读的文章和源再次。一旦你明白了一个模型是什么,它​​是如何相关表,你应该能够解决的任务。

最后最后一个提示:algorythm将不能很好地工作,如果你只添加一种语言!这样做是为了找到一个匹配(统计学)的最佳模型中的一个表。如果你只有一种语言,它很可能会经常打得很.....{ BR}卡斯滕/

24小时是不够的
评论会员:XXXX纳什 时间:2012/01/25
感谢您的帮助和提示你这么多。我已经明白通过阅读文章。但我只是不知道现在如何添加一个新的语言。你能至少帮助我加入一个新的语言,通过话,我将尝试创建一个自己的新模式。我真的在使用Visual Studio缺乏经验,而不是很熟悉如何使用它
评论会员:NOSS 时间:2012/01/25
自然语言不使用的话
?我testet几个小语言的节目。德国北部被认定为荷兰语,科西嘉,意大利和爱尔兰凯尔特为德语和英语的混合。非常好
评论会员:卡斯滕Zeumer 时间:2012/01/25
我猜任何人类口头语言使用的话。
但并非所有的书面语言遵循的断字的概念。
据我所知,中国将这种语言。
我的断词不工作,为中国和中国为此没有任何真正的字统计,但唯一的N - gram统计。
/卡迪

24小时是不够的
评论会员:NOSS 时间:2012/01/25
中国的迹象并不代表他们的声音说出的话。有许多在中国的扬声器无法理解对方的语言,但它们使用相同的中国圣经。它们代表了不同的单词。 "狗"或​​"洪德"在不同的语言不同的词,但意思是相同的,并可以用相同的符号。
书面当然,即使可以写入英文拼写
没有改变中国的迹象
评论会员:。vinothcp 时间:2012/01/25
当我从分类文本的返回值,它使语言的名称,分数和标签​​
但标签总是空。其实结果是给
评论会员:。卡斯滕Zeumer 时间:2012/01/25
喜vinothcp,

Tag属性默认情况下不包含任何数据。
它用于存储应用程序特定的数据,任何与类相关联的根本。这是从原来DialogueMaster的ICategory和ICategoryList(其中有许多额外的属性和方法)的其余部分。我只是认为有人可能会发现... ...

卡斯滕/
24小时是不够的
评论会员:帕特里斯Dargenton 时间:2012/01/25
您好,I'am寻找在任何语言的单词列表:我试图打开你的源文件,但也有丢失的文件:您的zip文件确定
?感谢
评论会员:。卡斯滕Zeumer 时间:2012/01/25
您好帕特里斯,

的源代码是完整的。巴贝尔大会和样品编译没有问题的。
缺少的项目,可以放心地忽略。这是因为巴贝尔是一个更大的项目的一部分。
词表内的all.Model资源。
您可以提取这样的单词列表:


using System;

using DialogueMaster.Babel;

 

namespace WinSample

{

    static class Program

    {

        [STAThread]

        static void Main()

        {

 

            foreach (string lang in BabelModel._AllModel.Keys)

            {

                System.Console.Out.WriteLine("Most common words for: " + lang);

                ITokenTable wordTable = BabelModel._AllModel[lang].WordTable;

 

                foreach (ITokenStats wordStat in wordTable.Values)

                {

                    System.Console.Out.WriteLine("{0}\t{1}\t{2}",

                        wordStat.Rank,  wordStat.Token, wordStat.Occurences);

                }

            }

 

        }

    }

}


/卡迪

24小时是不够的
评论会员:帕特里斯Dargenton 时间:2012/01/25
谢谢您。我写了一个字的搜索引擎,可以产生一个帐套的指数(例如从一个作者的书):我在寻找每一种语言的字典有效的话:在每一种语言,以便从索引中排除的论文的话,显示特定的词。你有一个想法,找到他们呢?
为每种语言中提取关键字,我也用最常见的词,但它是不完全的最常见的话:这是最常见的的是从未有可能作为关键字的话。下面是一个在法国的例子:
DE LA ET LES EN DES EST联合国UNE DANS IL面值归仁倒凹阙表面加上儿子本身SONT OU AVEC CE曲PAS COMME对NE SA cette MAIS AUX ELLE SES德塞夫勒ETE米姆ONT恩特雷里奥斯理由既成事实CES leur peut aussi吕ainsi SOUS apr镳était AUTRES那么DONT威乐特雷斯笏ILS法国欧吹捧...
"威乐"(镇)和"法国"可能是关键字。
http://patrice.dargenton.free.fr/CodesSources/VBTextFinder.html
评论会员:卡斯滕Zeumer 时间:2012/01/25
喜帕特里斯,

我不知道,如果你是真的最常见的词语,你试图过滤掉噪音的话(也就是说,你不想指数)。
其实这几乎是相同的,但你可能会更幸运的互联网搜索noisword列出。
但实际上,我怀疑,简单地消除噪音留给你一个适当的索引。从你的样品,我猜(我的法语很差)你要提取的名词。单词列表是不会这样做的。您需要一个在手语的POS标注器。我有英语(棕色),德国(STTS)和丹麦(DK2000)之一。缺乏任何(免费)法国learndata(能够理解法国)我有没有为法国... ...也许我在下一篇文章中,将覆盖的POS -标注器。

对于一个好的关键字索引,我会建议使用的POS标注器,然后一个好的分析器/ Chunker。然后,您尝试展开全部pronomina和使用某种汇总程序。从现在简明的文字,尝试提取最常见的词组...

如果你只是想有一个搜索索引,我建议在Lucene的密切关注。

/卡迪

24小时是不够的
评论会员:帕特里斯Dargenton 时间:2012/01/25
您好,我并不需要一个POS标注器:这是一个过于复杂的任务。提取关键词,它是简单排除在文档中最频繁的话noiswords。但noiswords列表不能提取自动
我的问题的第一部分是关于每种语言中的单词词典的:我将着眼于Lucene的或其他类似与tesseract - OCR软件。感谢您答复。
评论会员:达妮埃拉 时间:2012/01/25
感谢
{S3}

达妮埃拉
我不能... ...靠...我的回忆... ...
评论会员:ArchKaine 时间:2012/01/25
我之所以问,是,它将使解析大量的文字容易得多。我似乎无法将其粘贴到Tex​​tBox的相对大量的数据。无论如何,如果你愿意,我想我可以肯定地说,你被许多{S3}
感谢
优秀的文章,得到了我的5

继续努力吧! {S3}
有人说无知是幸福... ...德佑,他们