从文本中检测单词边界

Boo*_*ean 5 java algorithm text word-boundary data-structures

我在字边界识别方面遇到了这个问题。我删除了维基百科文档的所有标记,现在我想获取实体列表。(有意义的术语)。我计划采用文档的二元组、三元组并检查它是否存在于字典(wordnet)中。有没有更好的方法来实现这一目标。

以下是示例文本。我想识别实体(显示为用双引号括起来)

Vulcans are a humanoid species in the fictional "Star Trek" universe who evolved on the planet Vulcan and are noted for their attempt to live by reason and logic with no interference from emotion They were the first extraterrestrial species officially to make first contact with Humans and later became one of the founding members of the "United Federation of Planets"

Nei*_*fey 1

我认为你所说的实际上仍然是一个新兴研究的主题,而不是应用成熟算法的简单问题。

我无法给你一个简单的“这样做”的答案,但这里有一些我的想法:

  • 我认为使用 WordNet 可以工作(虽然不确定二元组/三元组在哪里出现),但您应该将 WordNet 查找视为混合系统的一部分,而不是发现命名实体的全部和最终目的
  • 然后,首先应用一些简单的常识性标准(大写单词序列;尝试将频繁的小写功能词(例如“of”)容纳到其中;由“已知标题”加上大写单词组成的序列);
  • 寻找从统计上看你不会期望作为实体候选者偶然相邻出现的单词序列;
  • 你能建立动态网络查找吗?(您的系统发现大写序列“IBM”,并查看是否找到例如具有文本模式“IBM is ... [组织|公司|...]”的维基百科条目。
  • 看看这里和“信息提取”文献中的任何内容是否可以为您提供一些想法:http://www-nlpir.nist.gov/lated_projects/muc/proceedings/muc_7_toc.html

事实是,当你查看现有的文献时,你会发现人们似乎并没有使用非常复杂、完善的算法。所以我认为有很大的空间来查看你的数据、探索并看看你能想出什么......祝你好运!