【发布时间】:2016-05-13 09:41:55
【问题描述】:
我有很多文本(数百万),从 100 到 4000 字不等。这些文本被格式化为书面作品,带有标点符号和语法。一切都是英文的。
问题很简单:如何从给定文本中提取每个 WikiData 实体?
一个实体被定义为每个名词,无论是适当的还是常规的。即人名、组织名、地点名和诸如chair、potatoes等事物的名称。
到目前为止,我已经尝试了以下方法:
- 用OpenNLP标记文本,并使用pre-trained models提取人、位置、组织和常规名词。
- 在适用的情况下申请Porter Stemming。
- 将所有提取的名词与wmflabs-API 匹配以检索潜在的WikiData ID。
这工作,但我觉得我可以做得更好。一个明显的改进是在本地缓存 WikiData 的相关部分,我打算这样做。但是,在我这样做之前,我想检查是否有其他解决方案。
建议?
我标记了问题 Scala,因为我使用 Spark 来完成任务。
【问题讨论】:
标签: scala machine-learning information-retrieval wikidata wikidata-api