我不太确定你在做什么,但让我们通过以下方式继续你的任务:
- 你有一个很大的语料库,你会解析
- 根据您的训练数据,对于您想要找到对应位置的每一行
机器学习部分会检查对应的含义。
重点是使用 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 under 和down south
- 使用相似性度量来评估每个位置的接近度。
- 另一种方法是使用语料库训练 Word2Vec 并计算与每个训练数据的相似度 - 这肯定需要更多的工作,因为它需要一些预处理、精心选择的语料库和良好的相似度度量。
最后,一个好的算法会结合这些技术和其他一些技术。在使用机器学习技术之前有很多预处理工作要做,但从一个简单的算法开始并改进每个薄弱部分绝对是可行的。