使用自定义词汇从自由文本中标记和提取短语(python)?
我有一个自定义的词汇表,里面大约有100万行数据,存储在一个SQL表格中。每一行都有一个唯一的标识符(UID)和一个对应的短语,这些短语可能由很多个单词组成。这个表格很少会有变化。
我需要在一份自由文本文件中,标记、提取、分块或者识别(NER?)与上面提到的自定义词汇表中的短语。这样我就可以根据找到的短语提取它的UID。
如果能对部分匹配的短语,以及顺序不同的短语进行标记或提取,那就更好了,这可以通过一些阈值或算法设置来实现。
- 有没有什么自然语言处理(NLP)工具,最好是基于Python的,能够利用自定义词汇表进行标记、提取、分块或从自由文本中进行NER?
- 考虑到目标是从自由文本中提取短语,哪种格式最适合这个自定义词汇表与NLP工具配合使用?是XML、JSON、树结构、IOB块,还是其他格式?
- 有没有工具可以帮助将SQL表(原始的自定义词汇表)转换成NLP算法需要的词汇表格式?
- 我需要和其他(非Python的)工具集成吗,比如GATE、KEA、Lingpipe、Apache Stanbol或OpenNLP?
- 有没有API可以用于标记/提取和创建自定义词汇表?
- 有没有人使用过RapidMiner或TextRazor?这些工具能帮助实现上面的需求吗?
谢谢!
相关文章:
- 暂无相关问题
1 个回答
经过很多小时的检查各种API,我们决定使用TextRazor。
TextRazor在自然语言处理(NLP)短语提取和分类结果方面表现非常出色。它使用了Freebase和DBpedia等多个数据源,这让TextRazor能够正确地将“计算机安全”这样的短语识别为一个整体,而不是像其他一些API那样,把它错误地分成“计算机”和“安全”两个不同的类别。你可以很简单地控制TextRazor使用哪些术语,哪些不使用。
在速度方面,TextRazor非常快。如果我没理解错的话,它在很多(几百个?几千个?)亚马逊的按需机器上进行并行计算。
关于费用,我们和其他服务进行了比较,并且对其中一个竞争对手(一个非常大的三字母公司)进行了深入分析,结果发现TextRazor的价格非常有竞争力,也很合理。
用Python集成他们的API相对简单,除了在本地使用Web2Py框架时遇到了一些小问题,主要是关于https的。如果你在本地使用TextRazor和Web2Py时遇到困难,随时可以联系我,我很乐意分享我们的解决方案。
服务和支持几乎是即时的,他们通常在12小时内回复所有询问。
声明一下,我与TextRazor没有任何利益关系、股份或其他财务利益,我们实际上还在使用他们的免费计划,所以我们还没有为他们的API服务付费。