标记,使用自定义词汇表(python)从自由文本中提取短语?

时间:2015-11-23 00:33:41

标签: python nlp nltk named-entity-recognition data-extraction

我有一个自定义词汇表约。 SQL表中的1M行。每行都有一个UID和一个相应的短语,长度可以是多个单词。这个表很少改变。

我需要在自由文本文档中对照上述自定义词汇表中的标记,提取,块或识别(NER?)实体短语。因此,对于在自由文本中找到的短语,我可以拉出它的UID。

如果部分匹配以及以不同顺序出现的短语标记将根据某些阈值/算法设置进行标记/提取,那将是很好的。

  • 哪种NLP工具(最好是基于Python的)可以在自由文本的标记,提取,分块或NER中使用自定义词汇表?
  • 了解目标是从自由文本中提取短语 - 哪种格式最适合此自定义词汇表以使用NLP工具? XML,JSON,树,IOB块,其他?
  • 任何帮助将SQL表(原始自定义词汇表)转换为NLP算法需要使用的词汇表格式的工具?
  • 我是否需要与其他(非pythonic)工具集成,如GATE,KEA,Lingpipe,Apache Stanbol或OpenNLP?
  • 是否有用于标记/提取和创建自定义词汇表的API?
  • 使用RapidMiner或TextRazor的任何经验?这些工具可以帮助解决上述问题吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

经过多个小时检查各种API后,我们决定使用TextRazor。

NLP短语提取/分类结果的质量非常好 - TextRazor使用Freebase和DBpedia(以及其他存储库),这允许TextRazor对PHRASES进行分类/分类/提取,例如"计算机安全性" - 正确地作为一个实体(并没有那么多其他API - 错误地将此示例分类为一类"计算机"另一个类作为"安全")。编程控制TextRazor将使用哪些术语以及哪些术语不会 - 再次非常简单。

就速度而言 - TextRazor非常快。如果我理解正确,它会在许多(数百?数千?)亚马逊按需计算机上使用并行计算。

成本 - 我们将其与其他人进行了比较,并与他们的竞争对手(一家非常大的3家公司)进行了深入分析 - 他们绝对具有竞争力和合理性。

使用Python与他们的API集成是(相对)直接的,除了在Web2Py框架上本地工作时使用https的一些小问题。如果您在本地使用Web2Py上的TextRazor时遇到障碍 - 请随意ping我,我很乐意分享我们的解决方案。

服务/支持 - 几乎是即时的 - 他们通常会在12小时内回复所有查询。

披露 - 我没有与TextRazor相关的任何利益,股票或任何其他经济利益,我们实际上仍在他们的免费计划中 - 所以我们还没有为他们的API服务付款。