如何解析国家和国籍实体?

数据挖掘 命名实体识别 词干
2022-03-08 17:07:57

我已经尝试对此进行词干化和词形还原,但到目前为止还没有什么效果。

如何将国名和国籍解析为单一实体?

例如:

加拿大和加拿大应该只是一个实体:加拿大乌干达和乌干达应该只是乌干达

看起来词干是这里的一种方法。我只是发现它错过了相当多的国家。

2个回答

我相信词形还原是正确的。无论如何,另一种方法是使用 WordNet。对于词性为名词的单词,如果有 ,可以查询member holonym,该功能会显示它所属的国家。例如,Canadian -> Canada. 那么你必须小心,因为如果你选择member holonym加拿大,那将是英联邦。我想你可以有一个 Levenshtein 距离阈值来忽略这些。

您可以查看在线网络应用程序

我看到标签已经存在,但您应该查看命名实体识别 (NER)。它用于标记或查找语音中的专有名词,并可以处理人员和位置(可以将其视为国家)。这个页面说流行的 spaCy 库专门处理国家:

https://spacy.io/api/annotation#named-entities

尽管您必须尝试使用​​形容词(“乌干达”),但它很容易抓住乌干达。

根据您的评论进行编辑,即解决问题是真正的问题。为此,我会尝试:

  1. 使用 word2vec 和余弦相似度之类的东西来分析所有“捕获”的单词。如果你加载一个预训练的 word2vec 模型并将单词传递给它,你会得到一个代表那个单词的向量。如果你再比较所有的向量,我怀疑乌干达和乌干达会有非常高的相似性。对于在国家名称上使用 word2vec 的人,请参阅此答案:https ://stackoverflow.com/questions/21979970/how-to-use-word2vec-to-calculate-the-similarity-distance-by-giving-2-words
  2. 使用字符串比较函数来识别与其他捕获位置高度相似的捕获“位置”。这适用于某些国家(乌干达),但不适用于其他国家(法国/法国、瑞士/瑞士)。