从文本中提取关键字/关键词

Sur*_*ngh 5 jnlp nlp text-extraction machine-learning text-mining

我正在做一个项目,需要从文本中提取“技术相关的关键字/关键词”。例如,我的文字是:

“ ABC Inc一直在从事与机器学习有关的项目,该项目利用现有的库从大数据中查找信息。”

提取的关键字/关键词应该是:{机器学习,大数据}。

我的文本文档以BSON文档的形式存储在MongoDb中。

有什么最好的nlp库(具有足够的文档和示例)来执行此任务,以及如何执行?

谢谢!

小智 5

看起来您不仅需要缩小关键字/关键词的范围,而且要找到每个句子的主题和宾语。对于主题/对象识别,我建议使用Stanford Parser或Google Language API,在其中您可以发送字符串并获得相关性树响应。

您可以先测试Google API,看看它是否可以与您的语料库配合使用:https//cloud.google.com/natural-language/

这里的结果是一个主题谓词对象(SPO)三元组,其中您的谓词描述了这种关系。您需要遍历依赖性图并编写脚本来解析三元组。

其他软件包:我经常使用NLTK,Spacy和Textblob。如果语料库简单,通用且直截了当,那么Spacy和Textblob可以很好地用于OOTB。如果语料库是高度定制的,特定于领域的,混乱的(不正确的拼写或语法)等。我将使用NLTK并花更多时间定制我的NLP文本处理管道,包括擦洗,去斑等。您可能想要添加自己的定制的技术相关关键字和关键词词典,以便您决定使用其中一个软件包时,解析器可以捕获这些关键字和关键词。

NLTK教程:http://www.nltk.org/book/

Spacy快速入门:https://spacy.io/usage/

Textblob快速入门:http ://textblob.readthedocs.io/en/dev/quickstart.html

  • 一些额外的指针(因为这个SO问题是我搜索关键字提取的第一个结果):请查看TextRank和RAKE。一个相关的应用用例:https://graphaware.com/neo4j/2017/10/03/efficiency-unsupervised-topic-extraction-nlp-neo4j.html (2认同)