我在哪里可以找到改变我喜欢的东西的功能?

时间:2012-01-15 06:23:25

标签: c# .net-4.0

我正在寻找一种可以改变我喜欢的东西的功能,他们是我的,我喜欢的。

有谁知道我在哪里找到一个?

如果没有,最好的方法是什么? 我唯一想到的就是使用像

这样的东西
rawMessage = rawMessage.Replace("theyre", "they're");

它是一个聊天室项目,谢谢!

3 个答案:

答案 0 :(得分:2)

您可以使用拼写检查库来纠正此类拼写错误,例如

http://msdn.microsoft.com/en-us/library/system.windows.controls.spellcheck.aspx

如果内置的WPF拼写检查程序无法满足您的特定需求,网上还有许多其他拼写检查库。

http://www.aspnetspell.com

http://www.codeproject.com/KB/cs/spellcheckdemo.aspx

http://www.markandey.com/2010/03/how-to-write-your-own-spell-checker.html

答案 1 :(得分:1)

要使用强力来更改简短的单词列表,使用string.Replace()或Regex是微不足道的。这对于像“他们”这样的词来说会相当不错 - > “他们是”和“你是” - > “你”。

但是,要检测需要“它”或“它”,“你的”或“你是”的语法结构,请在“他们”,“那里”和“他们”之间正确选择,或者在所有情况下,“用户”和“用户”和“用户”或检测到“我不能”,“船只的倾斜”或“詹姆斯先生”之间的区别要复杂得多 - 即使大多数人都无能为力做对了。

为此你需要一个语法检查器。如果您尝试过像MS Word中那样的商业广告(这是Word有多慢的部分原因,然后几乎总是建议不正确的“更正”,只是让你想把你的笔记本电脑扔出窗外)你会意识到你正在进行一场失败的战斗。

小心简单的更换方案。我曾经在一个聊天论坛上发了一条消息,提到小镇“斯肯索普”,四个字母改为星号,引起人们注意一个没人会注意到的粗鲁的话。因此,请确保将任何处理应用于单词,而不仅仅是字符序列(这是Regex比string.Replace容易得多的地方)。

最终,改变人们的聊天室帖子只会疏远他们 - 当一台认为它知道更好的计算机损坏正确的消息时会很烦人,并且很难意识到计算机告诉你你是愚蠢的。如果你的名字是詹姆斯·坎特,你必须发明一个假名。

这可能是聊天室通常不会尝试自动更正用户帖子的原因。

答案 2 :(得分:1)

您似乎想要制作自动更正功能。首先,您需要建立一个更正列表

Dictionary<String, String> Corrections = new Dictionary<String, String>();
Corrections["i'm"] = "I'm";
Corrections["i"] = "I";
Corrections["theyre"] = "they're";
...

然后你需要替换文字中的单词:

String result = Regex.Replace(input, @"\b[A-Za-z']*\b", CorrectWord);

然后你需要查找单词:

private String CorrectWord(Match match)
{
    String correction;
    if(Corrects.TryGetValue(match.Value, out correction))
        return correction;
    return Match.Value;
}

以上代码未经过测试或编译。

希望这可以帮助您进行尝试。