【问题标题】:Detecting foreign words检测外来词
【发布时间】:2014-11-28 15:08:39
【问题描述】:

我正在编写一个脚本来检测语言 A 中语言 B 中的单词。这两种语言非常相似,并且可能有相同单词的实例。

如果您对我目前所拥有的内容感兴趣,代码就在这里: https://github.com/arashsa/language-detection.git

我将在这里解释我的方法: 我创建了语言 B 中的二元组列表,语言 A 中的二元组列表(语言 B 中的小语料库,语言 A 中的大语料库)。然后我删除所有常见的二元组。然后我浏览语言 A 中的文本,并使用二元组在语言 A 中检测到这些文本并将它们存储在一个文件中。但是,这种方法会发现许多两种语言共有的单词,并且还会发现奇怪的二元组,例如相邻的两个国家的名称,以及其他异常情况。

你们有什么建议、阅读材料、我可能使用的 NLP 方法吗?

【问题讨论】:

  • 您要检测哪种语言?
  • 检测语言的方法有很多种,如果脚本是基于UNICODE的,就很容易检测到语言。
  • 嗯,语言是 nynorsk 和 bokmaal(它们是挪威语的两种变体,但我认为它们可以归类为两种不同的语言)

标签: python nlp n-gram


【解决方案1】:

如果您的方法返回两种语言中存在的单词,并且您只想返回一种语言中存在的单词,您可能需要创建一个 one-grams 在语言 A 中的列表和一个-grams 在语言 B 中,然后删除两者中的单词。然后,如果您愿意,可以继续进行二元分析。

也就是说,Python 中有一些很好的语言识别工具。我发现lang-id 是最好的之一。它预训练了超过 90 种语言的语言分类器,如果你愿意,可以很容易地训练其他语言。这是docs。还有guess-language,但我估计它的表现并不好。根据外语部分的本地化程度,您可以尝试以适当的粒度级别对文本进行分块,并通过(例如)langid 的分类器运行这些块。

【讨论】:

  • 哇,谢谢,它实际上有一个 nynorsk 模型,我想检测的语言。伙计,我花了几天时间写我的剧本...
  • 我知道这种感觉!我想知道你的数据总是好的,所以希望你花在脚本上的所有时间都不是浪费时间。享受慵懒!
  • 嗯,这不是没有原因的,因为 lang-id 似乎对 nynorsk 和 bokmaal(两种挪威语言)之间的区别很糟糕。我试着一次给它从两个词到 30 个词,它认为找到 nynorsk 的时间是 bokmaal,实际上没有一个 nynorsk 实例,所以它可能会找到 nynorsk,但到目前为止它只错误地将 bokmaal 标记为 nynorsk .
  • 嗯,如果有可用的,您可以尝试为分类器提供额外的训练数据...
猜你喜欢
  • 2023-03-31
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多