3

当您在 Stackoverflow 中搜索某些内容时,它会剪切与您的条件最匹配的问题描述部分,然后标记条件词。

我想知道在 C# 中手动执行此操作的最佳方法,即无需全文搜索引擎的帮助。

主要问题是如何快速选择最佳文本部分?

到目前为止我所做的是:

  1. 我获得了文本的空间索引。这让我知道单词从哪里开始,以便我可以从它们开始我的子字符串测试。
  2. 从每个空间索引中,我提前 300 个字符并测试我找到的关键字的出现次数。
  3. 我假设出现次数最多的 300 个字符长的部分是最好的,所以我从原始文本中删除了它。

这是一个好方法吗?有更快的方法吗?计算出现次数是找到最相关部分的最佳方法吗?

4

1 回答 1

1

使用这种方法,您通常会在匹配的开头或结尾附近找到与关键字的最佳匹配,这意味着您不会为这些关键字提供太多上下文。我会添加一个额外的条件,即匹配开始和结束附近的关键字两侧必须有 n 个单词。

您可以考虑在更方便的地方打破匹配,例如标点符号或连词而不是空格。

您可能还想查看词频 - 逆文档频率,以便为关键字赋予不同的权重,而不仅仅是计算它们。

于 2010-02-09T00:09:25.547 回答