【问题标题】:Keyword/keyphrase extraction from text [closed]从文本中提取关键字/关键词[关闭]
【发布时间】:2018-03-13 18:28:38
【问题描述】:

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

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

提取的关键字/关键短语应为:{机器学习,大数据}。

我的文本文档在 MongoDb 中存储为 BSON 文档。

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

谢谢!

【问题讨论】:

    标签: machine-learning nlp text-mining jnlp text-extraction


    【解决方案1】:

    看起来您不仅需要缩小关键字/关键短语的范围,还需要找到每个句子的主语和宾语。 对于主题/对象识别,我推荐使用 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。一个相关的应用用例:graphaware.com/neo4j/2017/10/03/…
    • @JoppeGeluykens 你知道这个库是否适用于非英文文本吗?
    • @vikifor 算法应该与语言无关,但您可能希望使用特定于目标语言的停用词列表。
    猜你喜欢
    • 1970-01-01
    • 2021-03-09
    • 2020-09-24
    • 2010-12-07
    • 2011-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多