【问题标题】:Recognize Names using Machine Learning使用机器学习识别名称
【发布时间】:2016-06-17 08:11:53
【问题描述】:

我正在解决一个问题,我不确定机器学习是否是这里的理想候选者。

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

训练数据

名称:澳大利亚(AUS, Australea, down under)

名称:维也纳(VNA,欧洲之珠)

语料库数据

Austrea 
Country down south 
Oustralea 
the europe jewel

我在这方面完全是新手,所以如果你能描述一下,我将不胜感激。

谢谢

【问题讨论】:

    标签: machine-learning


    【解决方案1】:

    我不太确定你在做什么,但让我们通过以下方式继续你的任务:

    • 你有一个很大的语料库,你会解析
    • 根据您的训练数据,对于您想要找到对应位置的每一行

    机器学习部分会检查对应的含义。 重点是使用 metric 来评估,对于语料库数据的每一行,哪个位置最有可能被引用。为此,您可以处理训练数据、语料库数据以及评估两者之间联系的指标。

    训练数据

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

    名称:澳大利亚(AUS, Australea, down under)

    名称:Australie([AUS, Australia], [austral, australia, australea, oustralia], [down under, country down south], [kangooros, Sydney, Canberra])

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

    • 国际属性:你可以通过报废网站查看ISO 3166-1,你应该可以找到一个列表。
    • 国家/地区的不同名称:废弃 Google 翻译以获取有关澳大利亚与其他所有语言的书写方式的字典
    • 共同教派
    • “经典”属性
    • ...

    语料库数据

    您的语料库可能非常异构。一些预处理可能很有用,例如对它们进行标记,因此您可能会看到,在许多语言中,澳大利亚总是以“austral”开头(不要忘记使用小写、unicode、无重音...)。

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

    指标

    这部分定义了每个语料库数据如何接近(从数学上讲,不是从地理上)到训练数据的每个位置。然后你选择 closer

    对于每个语料库数据:

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

    最后,一个好的算法会结合这些技术和其他一些技术。在使用机器学习技术之前有很多预处理工作要做,但从一个简单的算法开始并改进每个薄弱部分绝对是可行的。

    【讨论】:

      猜你喜欢
      • 2019-06-16
      • 2019-01-19
      • 1970-01-01
      • 1970-01-01
      • 2012-09-04
      • 2017-01-22
      • 1970-01-01
      • 2020-06-10
      • 2018-01-30
      相关资源
      最近更新 更多