在哪里可以找到一个函数来更改I';m到I';m

本文关键字:函数 一个 在哪里 | 更新日期: 2023-09-27 18:20:31

我正在寻找一个函数,它可以改变事情,比如我是我是,他们是,我是等等。

有人知道我在哪里能找到一个吗?

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

rawMessage = rawMessage.Replace("theyre", "they're");

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

在哪里可以找到一个函数来更改I';m到I';m

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

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

等等。

您似乎想要创建一个自动更正功能。首先你需要建立一个修正列表

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;
}

上面的代码既没有测试也没有编译。

希望这对你的尝试有所帮助。

要使用暴力来更改一个简短的单词列表,使用字符串是很简单的。Replace()或Regex。这对"他们"->"他们"answers"你"->"你"这样的词来说效果相当好。

然而,要检测需要"it’s"或"its"、"your"或"you are"的语法结构,请在"their"、"there"answers"they are"、"users"answers"user's"answers"user’s"之间正确选择,或者在所有情况下检测"I can't"、"the cant of the ship"或"Mr James cant"之间的差异,都要复杂得多——即使是大多数人也无法正确选择。

为此,你需要一个语法检查器。如果你尝试过像MS Word这样的商业软件(它对Word的速度有多慢负有部分责任,然后几乎总是建议不正确的"更正",这只会让你想把你的笔记本电脑扔出窗外),你会意识到你正处于一场失败的战斗中。

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

最终,改变人们在聊天室的帖子只会疏远他们——当一条正确的信息被一台认为自己更了解的电脑破坏时,这很令人恼火,当意识到电脑在告诉你你很愚蠢时,这也很令人不快。如果你的名字是詹姆斯·坎特,你就必须发明一个假名。

这可能就是为什么聊天室通常不会自动更正用户的帖子的原因。