【问题标题】:Whats a good way to match text to sets of keywords (NLP)将文本与关键字集(NLP)匹配的好方法是什么
【发布时间】:2021-02-28 14:21:23
【问题描述】:

我正在尝试将输入文本(例如新闻文章的标题)与关键字集 s.t. 匹配。可以选择最匹配的集合。

假设,我有一些关键字集:

[['democracy', 'votes', 'democrats'], ['health', 'corona', 'vaccine', 'pandemic'], ['security', 'police', 'demonstration']]

输入(假设的)标题:New Pfizer vaccine might beat COVID-19 pandemic in the next few months.。显然,它很适合第二组关键字。

精确匹配单词是一种方法,但可能会出现更复杂的情况,为此使用基本形式的单词可能是有意义的(例如duck而不是ducks,或run而不是@ 987654329@) 来增强算法。现在我们已经在谈论 NLP。

我尝试使用 Spacy 词和文档嵌入 (example) 来确定标题和每组关键字之间的相似性。计算一个完整句子和有限数量的关键字之间的文档相似度是个好主意吗?还有其他方法吗?

相关:What NLP tools to use to match phrases having similar meaning or semantics

【问题讨论】:

    标签: python nlp spacy


    【解决方案1】:

    这样的任务没有一个正确的解决方案。您必须尝试适合您问题的方法!

    我能想到的解决您问题的可能方法:

    • 匹配: 精确的或更详细的,例如引理/词干或 Levensthein。
    • 嵌入相似度:我猜单词相似度会胜过文档-关键词相似度,但同样,只是尝试一下。
    • 分类:您的问题似乎是一个经典的分类问题,每个集合都是一个类。如果您没有足够的标记训练数据,可以尝试active-learning

    【讨论】:

    • 非常感谢您的建议!你能详细说明你的第二点吗?文档嵌入不只是其词嵌入的平均值吗?您如何设想实现这一点?
    • 平均嵌入是一种可能性,但您也可以循环遍历您的句子并为每个单词比较单词嵌入和关键字词嵌入。然后选择具有最小距离的对作为关键字集。
    • 嗯,太好了!它可以很好地与词形还原和例如平均前三个/五个/十个最小距离以增强鲁棒性。我会报告我的发现!
    猜你喜欢
    • 2013-06-30
    • 2018-11-03
    • 2011-12-27
    • 2015-06-13
    • 2010-10-11
    • 2015-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    相关资源
    最近更新 更多