使用机器学习识别名称

时间:2016-06-17 08:11:53

标签: machine-learning

我正在处理一个问题,我不确定机器学习是否会成为理想的候选人。

我的别名中有一个列表位置。这是我计划用于训练模型的受监督数据集。使用这个我想在从大文本语料库中提取的列表中识别它们。挑战在于这些地点是外国名称,因此它们以各种方式拼写。

培训数据

  

姓名:澳大利亚(澳大利亚,澳大利亚,下)

     

姓名:维也纳(VNA,欧洲宝石)

语料库数据

Austrea 
Country down south 
Oustralea 
the europe jewel

我对此非常陌生,所以如果你能描述一下我会很感激。

由于

1 个答案:

答案 0 :(得分:1)

我不太确定你做了什么,但让我们通过以下方式恢复你的任务:

  • 您将解析一个大的语料库
  • 根据您的培训数据,您想要找到对应的位置的每一行

机器学习部分将检查对应的含义。 关键是要使用指标来评估语料库数据的每一行,哪些位置最有可能被引用。为此,您可以处理您的培训数据,语料库数据以及评估两者之间关系的指标。

培训数据

一种工作方式是增加训练集中的信息。例如,从

开始
  

姓名:澳大利亚(澳大利亚,澳大利亚,下)

  

姓名:澳大利亚([澳大利亚,澳大利亚],[澳大利亚,澳大利亚,澳大利亚,oustralia],[南下,南下],[kangooros,悉尼,堪培拉])

您注意到现在,参数是在组内收集的(当然,您可以定义自己的参数),每个参数都可以使用机器学习技术进行处理:

  • 国际属性:您可以通过废弃网站查看ISO 3166-1,您应该能够找到一个列表。
  • 国家/地区的不同名称:废弃谷歌翻译以获取澳大利亚写作的词典是其他所有语言
  • 共同面额
  • “经典”属性
  • ...

语料库数据

您的语料库可能非常异构。一些预处理可能是有用的,例如标记它们,所以你可能会发现在很多语言中,澳大利亚总是从“南方”开始(不要忘记使用小写,unicode,没有重音......)。

您还可以删除不提供任何信息的停用词“the”,“a”,...某些库提供它们(对于Python,您可以检查BeautifulSoup)但在您的情况下,您可能想要自定义它们用手。

<强>公制

这部分定义了 close (数学上讲,不是地理上)每个语料库数据到训练数据的每个位置的方式。然后选择 close

对于每个语料库数据:

  • 您可以检查培训数据中是否存在单词
  • 检查某些字词是否为同义词down underdown south
  • 使用相似性度量来评估每个位置的接近度
  • 另一种方法是训练带有语料库的Word2Vec并计算与每个训练数据的相似性 - 这肯定是更多的工作,因为它需要一些预处理,一个选择良好的语料库和一个良好的相似性度量。

最后,一个好的算法会混合这些技术和更多。在使用机器学习技术之前要做很多预处理,但是从一个简单的算法开始并改进每个弱部分肯定是可行的。