用于查找文本中句子的算法

问题描述 投票:0回答:1

[朋友,我正在寻找一种好的算法来搜索大文本中给定的详细短语。为简单起见,我考虑将文本标记化并在其中找到所有单词。因此,如果我有一个包含三个单词的短语(实际上可能会有更多的单词),那么我首先要在文本中查找这些单词中每个单词的位置,因此整数数组将与单词中的三个单词中的每个单词相关联短语。这些数组不一定具有相同的长度。

可能有些例子在这里会很好。假设我们需要从该文本中找到一个短语“ all white cats”:

...这只是关于cats的虚拟文字。在本文中,我想写这样的短语:所有猫白色,但事实不是所有猫白色。但是如果有一些white cats,无论如何,我们需要对它们进行write全部关于 ...

的事实

如果我们假设“这个”单词的数字为30,那么我们可以从初始短语为每个单词创建这些数字:

all: 48, 57, 76
white: 51, 60, 67
cats: 37, 49, 58, 68, 80

如您所见,我们可以在不同阶段组合这些单词,每个“短语”将具有自己的“品质”。可以将质量计算为每个单词到虚拟“短语中心”的距离之和。

所有猫白色”是两个很好的短语,质量为3.33。所有其他单词都可以与短语组合,但是它们的质量较低。

我的问题是找到一个好的算法来列出所有短语,每个短语都有一个中心坐标和单词数。我知道可以通过直接计算每个单词到每个单词之间的距离来做到这一点,但是如果我们有足够大的文字和足够长的短语,可能要花一些时间。

为简单起见,我认为限制每个单词的查找距离(假设为5个单词。)>

但是接下来,我无法想象如何更快地计算出来。

我觉得有一种现成的算法可以解决,但找不到。

谢谢!

[朋友,我正在寻找一种好的算法来搜索大文本中给定的详细短语。为简单起见,我考虑将文本标记化并在其中找到所有单词。因此,如果我有一个...

algorithm math search phrase
1个回答
0
投票

让我们准备一个带有相应单词的排序位置的中间数据结构(请参见下面的pos_words)。对于后续单词的每个三元组,我们检查是否存在所有必需的单词,对于有效的三元组,我们计算分数/质量值。

© www.soinside.com 2019 - 2024. All rights reserved.