从句子中的单词中获取句子主题/焦点的算法

标签 algorithm nlp text-mining

是否有任何众所周知或成功的算法可以从句子问题中的单词中获取句子(问题)的主题和/或焦点?

如果没有,我将如何获得问题的主题/焦点。问题的主题/焦点似乎通常是名词或名词短语。

所以我要做的第一件事就是通过词性标记问题来确定名词。但是我怎么知道我应该只得到名词还是名词和形容词在它前面,或者名词和副词在它前面,还是名词和动词?

例如:

在“did the quick brown fox jump over the lazy dog”中,得到“quick brown fox”、“jump”和“lazy dog”。

在'what is the population of japan'中,获取'population'和'japan'

在'What color is milk'中获取'color'和'milk'

在'What is the height of Mt. Everest'中得到'Mt. Everst'和'Height'。

在编写这些内容时,我想最简单的方法是删除停用词。

最佳答案

我认为首先问题是语言相关的。

其次,我认为如果你有一组词,你可以检查它们在语言中的流行度/频率; f.e. “the”这个词比“euphoric”这个词出现得更频繁 => euphoric 更有可能成为合适的关键字。

这里拼写的重要性是至关重要的。如何处理?一种想法是对不常出现的单词使用距离算法,例如 Levenshtein(或者使用该单词进行 google 搜索,然后检查您是否获得结果或“您是不是想说”的通知)

虽然有些语言比其他语言更结构化。在英语中查找名词,您可以先检查“a/an word”,然后检查以“s”结尾的单词以查找可能的候选名词。然后对照字典。

对于形容词,您或许可以假设可能的形容词位于名词之前。然后将可能的形容词与字典进行比较。

那么你当然可以保留一个永远不允许作为关键字的单词的黑名单。

最好的解决方案可能是拥有一个自学神经系统,但我对这些系统不太熟悉,无法提供任何建议

关于从句子中的单词中获取句子主题/焦点的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23205556/

相关文章:

algorithm - 计算机科学理论中此问题描述的正确问题名称/算法是什么?

java - 如何提取Java中所有类型的名词?

text - ChatGPT token 限制

python - 有没有办法在没有 GPU 和 TensorFlow 的情况下运行 GPT2

c++ - 绘制图形的算法

c++ - 从重复的两个列表中生成所有组合

ranking - 关键词排名

c# - C# 中是否有任何词性标注器?

c - 操作系统中的循环调度算法

java - 解析复杂的文本行并将每个条目保存到变量中 - java