c# - C#中如何在两个字符串中查找相似的单词

标签 c# .net winforms

我有一个字符串,其中包含我需要匹配的单词,如下所示,它是常量,另一个可以更改的字符串可能包含来自该字符串“s”的单词。

string s = "run fun play game do work click type";

string g = "he will be running. He is playing a game by clicking the mouse";

我希望能够匹配这些词并在 Windows 窗体应用程序文本框中将它们加粗。像 runRunning 匹配,所以 running 会变成粗体等等。 :-/有什么想法吗??

最佳答案

我会做的是使用词干分析器(例如 Porter 词干分析器),使用 split(' ') 拆分字符串并遍历每个字符串。比较两个词的词干版本,然后将匹配的词加粗。

foreach (string t1 in term1.split(' '){

foreach (string t2 in term2.split(' '){

if (Stemmer.Stem(t1).equals(Stemmer.Stem(t2)){

//do whatever here

}

}    

    }

关于包含源代码的 porter 词干分析器:

http://tartarus.org/martin/PorterStemmer/

关于c# - C#中如何在两个字符串中查找相似的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8105370/

相关文章:

c# - 如何循环MoveTowards?

c# - SetConsoleActiveScreenBuffer 不显示屏幕缓冲区

c# - 为什么我无法使用 protobuf-net 从二进制数据中读取 VarInt 字段

c# - 最长运行索引 C#

c# - 为什么 Windows.Forms.TreeView 没有 SelectedNodeChanged 事件?

特定列上的 C# ListView LabelEdit

c# - 你如何找到锁的所有者(Monitor)?

c# - 对于多个属性(键)和作为值的列表来说,最合适的数据类型是什么?

c# - 如何使 DataGridVewLinkColumn 与 DataGridView 的其余部分一起排序

winforms - 如何实现ScintillaNET列编辑模式