当您在Stackoverflow中搜索某些内容时,它会删除最符合您条件的问题描述部分,之后会标记标准字。
我想知道在C#中手动执行此操作的最佳方式,这意味着没有全文搜索引擎的帮助。
主要问题是如何快速选择最佳文字部分?
到目前为止我所做的是:
- 我获取了文本的空间索引。这让我知道了 单词开始,以便我可以开始我的 来自他们的子串测试。
- 从每个空间索引中,我提前300个字符并测试如何 很多关键字I出现 找到。
- 我假设有300个字符长的部分最多 发生是最好的,所以我从原始文本中删除它。
醇>
这是一个好方法吗?有更快的方法吗?计算出现次数是找到最相关部分的最佳方法吗?
答案 0 :(得分:1)
使用此方法,您通常会在匹配开头或结尾附近找到与关键字匹配的最佳匹配,这意味着您不会为这些关键字提供太多上下文。我会添加一个额外条件,即匹配开头和结尾附近的关键字两边必须有n个单词。
您可以考虑在更方便的地方打破匹配,例如标点符号或连词而不是空格。
您可能还想查看 term frequency - inverse document frequency ,为关键字赋予不同的权重,而不仅仅计算它们。