1

基本上 - 我想计算各种术语的“接近度”。“接近度”是指它们之间的空格/字符/单词的数量。

例子:

术语 = Word1 / Word2 Chunk = " blah Word1 blah blah blah blah Word2 blah " Proximity = Word1-Word2:5 脚本会看到 2 个术语,找到它们,然后根据它们之间的单词查看距离。

更高级的版本是检查语义结构 - 并确定术语是否出现在相同的语义元素、兄弟姐妹或父级等中。因此,术语的邻近发现可能在同一段落内,或在连续段落中,或在相同的“父”(标题)下,但以其他方式分开等。

此外 - 在以后引入诸如词干/关系/发音之类的东西也可能很有用。

.

我环顾了网络(谷歌,这里,php 论坛,php 脚本站点)。没有看到类似的东西。我可以在一些类似(有限)的网站上看到工具——通常是基于 SEO 的工具。我希望能够将其应用于一般的“文本”......因为我可以将其应用于上传的 word/txt 文件等。

我没有看到任何真实的例子——所以我只能假设它的编码比小事还小。

问题是 - 我该怎么做?我将如何处理单词的变体顺序(Word1+Word2 / Word2+Word1)?我如何处理识别同一元素/结构内部/外部的接近度?

希望有人可以阐明/提出一些建议。

4

1 回答 1

2

如果您需要对给定文本进行大量此类搜索,您可以首先将整个文本索引到包含单词、其在文本中的位置和段落编号(如果需要)的数据库中。然后,您可以选择所有 Word1 和 Word2 位置,推断最小距离应该不难。

编辑: 这是一个简单的一次性算法的尝试,不使用数据库。

  1. 删除任何 html 和标点符号以仅保留单词
  2. 搜索第一次出现的 Word1
  3. 计算单词(或字符或空格)的数量,直到您到达下一次出现的 Word2
  4. 如果在到达 Word2 之前再次到达 Word1,请重新启动计数器
  5. 记录距离,然后继续重复步骤2-5,得到Word1和Word2的其他出现
于 2011-04-07T13:55:40.113 回答