【问题标题】:How does Word find matching word forms in Advanced Search?Word 如何在高级搜索中找到匹配的词形?
【发布时间】:2012-07-11 19:09:34
【问题描述】:

我有一个单词文档,其中包含“执行”和“性能”。当我在 Word UI 中使用高级查找工具时(目标最终将其转换为 Find.Execute 命令以进行 C# 编程搜索),当我选中匹配所有单词形式选项时,我得到了不同的结果。

当我搜索“性能”时,我会同时找到“性能”和“性能”。
当我搜索“性能”时,我只会得到“性能”的命中,即使“性能”仍应注册为“性能”的单词形式。

有谁知道 Word 如何使用其搜索算法,或者我如何确保搜索“性能”时同时显示“性能”和“性能”的结果?

编辑 (7/11/12 16:34)-
我运行了几个测试组合,看看我是否可以为自己找到一个模式,而且……这并不是那么有希望(大写很重要!?!)。
获得这些结果的文档是一个简单的单词文档,每个单词形式都有大写和小写。每次搜索都会找到单词的大写和小写版本。
(执行“右键单击->在新选项卡中打开图像”以查看完整尺寸的图像详细信息)
如果有人可以链接到为我澄清这一点的文档,将不胜感激!

编辑 (7/12/12 9:49)-
更悲伤的是:我尝试从 Word 中的界面切换到 C# 中的 Find.Execute 命令,而 matchSoundsLike 参数的功能与 UI 高级查找功能的功能不同:( 似乎程序化的 matchSoundsLike 标志只能找到声音-就像匹配大小写的表单一样,即使我将 matchCase 显式设置为 false。

【问题讨论】:

  • 我误读了你的问题,我的评论被抓了。对不起。

标签: c# algorithm search ms-word stemming


【解决方案1】:

这似乎是对Query Expansion 的改编,这是信息检索中相当重要的一个领域。

我建议不要自己构建查询扩展引擎,因为这更像是针对硕士(或可能是博士)论文的项目,而不是大型项目的较小功能。但是,如果您仍希望自己实现此功能,我建议您从Google Scholar search for "query expansion" 开始,并阅读一些现代技术。

就预先存在的库而言,大多数软件包都专注于网络搜索和数据库,因此我很难找到任何用于搜索文本文件的内容。 Google Query Expansion 没有明确表示它是 Google API 的扩展,但这是我得到的印象。 Microsoft SQL Server 似乎是have this functionality built-in。有一个Apache Lucene module 也实现了这一点。 MySQL 也有an implementation

如果您希望使用预先存在的包,您似乎至少需要修改程序的结构,以便将文本存储在数据库中。这会将您的问题从文本搜索问题转变为语料库搜索问题,这些问题经过大量研究,并且将有更多来自外部来源的文档和工具。也就是说,在不了解您的数据的情况下,我不知道这是否是一个值得的解决方案,也不知道您应该选择哪种结构。

祝你好运。很抱歉我无法直接回答你的问题,但我希望我能给你一些好的信息来源。

【讨论】:

  • 感谢您的链接!我可以记住查询扩展,但是将我的数据转换到数据库似乎没有什么好处,因为词形匹配功能是整个程序的一个小功能。
  • @ChrisW。我就是这么想的。这就是为什么我说实现自己的系统可能不是一个好主意。搜索部分匹配,例如 PERFORMance 或忽略大写是微不足道的(分别是正则表达式和一些 string.toLower() 方法。我不知道 C#,所以我不知道该方法叫什么),但是找到了查询术语(即“性能”中的“执行”)以及查找同义词及其变体对编程来说会很烦人,而且可能比它的价值更麻烦。对不起。
猜你喜欢
  • 1970-01-01
  • 2021-09-28
  • 1970-01-01
  • 2020-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-11
  • 2019-02-08
相关资源
最近更新 更多