检测外语单词

3
我正在撰写一个脚本,用于在语言 A 中检测语言 B 中的单词。这两种语言非常相似,可能存在相同单词的实例。
如果您对我目前的代码感兴趣,可以在此找到它: https://github.com/arashsa/language-detection.git 我的方法如下: 我创建了一个语言 B 大字形列表、一个语言 A 大字形列表(语言 B 中的小语料库和语言 A 的大语料库)。然后删除所有常见的大字形。接着,我遍历语言 A 中的文本,并使用大字形来检测语言 A 中的内容,并将其存储在文件中。但是,这种方法会发现许多两种语言都常见的单词,并且它还会发现奇怪的大字形,例如两个相邻国家的名称等其他异常情况。
你们有没有建议、阅读材料或者 NLP 方法可以帮助我呢?

1
你想要检测哪种编程语言? - user2085779
有许多方法可以检测语言,如果脚本基于UNICODE,则非常容易检测语言。 - user2085779
好的,这些语言是nynorsk和bokmaal(它们是挪威语的两个变种,但我认为它们可以被归类为两种不同的语言) - Arash Saidi
1个回答

3
如果您的方法返回两种语言中都存在的单词,并且您只想返回存在于一种语言中的单词,您可能需要创建语言A中的单元组和语言B中的单元组的列表,然后删除两者中都存在的单词。然后,如果您愿意,可以继续进行双字母分析。
话虽如此,在Python中有一些很好的语言识别工具。我发现 lang-id 是其中最好的之一。它预先训练了90多种语言的语言分类器,并且很容易为其他语言进行训练。这里是文档。还有guess-language,但在我的估计中表现不佳。根据外语片段的本地化程度,您可以尝试以适当的粒度对文本进行分块,并通过(例如)langid的分类器运行这些块。

1
哇,谢谢,它实际上有一个nynorsk的模型,这是我想要检测的语言。天啊,我花了几天时间编写我的脚本... - Arash Saidi
我知道那种感觉!我猜了解数据总是好的,所以希望你花在脚本上的时间不会全部感觉像浪费时间。享受使用 langid 吧! - duhaime
1
好吧,这不是毫无意义的,因为lang-id似乎在区分挪威尼诺斯克语和博克马尔语(两种挪威语言)方面非常糟糕。我试着一次给它提供两个单词到30个单词,但每当它认为找到了尼诺斯克语时,实际上都是博克马尔语,只有一个实例是尼诺斯克语,所以它可能会找到尼诺斯克语,但到目前为止,它只是错误地将博克马尔语标记为尼诺斯克语。 - Arash Saidi
嗯,如果有的话,您可以尝试向分类器提供额外的训练数据... - duhaime

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接