algorithm - NLP,用于确定文本 block 是否为 "similar"的算法(已经匹配关键字后)

标签 algorithm artificial-intelligence nlp information-retrieval

我一直在尽可能多地阅读 NLP 并在此处搜索,但没有找到任何似乎可以准确解决我正在尝试做的事情的内容。我是 NLP 的新手,之前只接触过一些小东西,到目前为止,我已经得到了我正在使用的 NLP 处理器,可以从文本中提取 POS。

我只是在处理一个小示例文档,然后使用一个“输入短语”,我基本上是在尝试为其找到匹配项。到目前为止我编写的代码基本上是这样做的:

  • 获取输入短语和“searchee(正在搜索的文档)”并将它们分解为单个单词的列表,然后还获取每个单词的 POS。用户还输入了输入短语中的一个关键字(并且应该在正在搜索的文档中)
  • 在两个List中查找用户输入的关键词,然后在每个文档中首先找到这个关键词,取前后一定数量的词(比如5个)。这些被放入数据集中进行处理,所以如果一篇文章有​​:

关键词:足球

“很多运动都很有趣,足球是一项很棒的运动,但也非常需要体力。” - 然后我的过程会将其截断为“很有趣,足球是”

我的目标是比较这些片段,例如“are fun, football is a”的相似性,就好像它们可能用于相似的上下文等。

我想知道是否有人可以就可用于此的模式、算法等向我指出正确的方向。上面的示例很简单,只是为了提供一个想法,但我打算制作如果我能找到合适的地方来了解更多相关信息,这会更加复杂。感谢您提供任何信息

最佳答案

看来你正在解决旧的 KWIC问题。这可以通过索引来完成,或者只是一个简单的 for 循环遍历文本中的单词:

for i = 0 to length(text):
    if text[i] == word:
        emit(text[i-2], text[i-1], text[i], text[i+1], text[i+2])

emit 可能意味着打印它们,将它们存储在哈希表中,等等。

关于algorithm - NLP,用于确定文本 block 是否为 "similar"的算法(已经匹配关键字后),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8103730/

相关文章:

Azure ML Studio ML 管道 - 异常 : No temp file found

python - 如何对相似的类别进行分组?

math - 计算两个不同大小向量的余弦相似度

c - Prims算法

javascript - 将数组中的字符串分解为子数组

c - 斑马拼图 - C 中的约束满足

c++ - 如何在 C++ 中最好地实现 DPLL?

java - Alpha-beta 移动顺序

c# - 按后续负数的数量对数组的(先前)元素进行分组

algorithm - 点和椭圆(旋转)位置测试 : algorithm