C# 用等价词替换句子
我想用对等的词来换句子; 例如:C# 用等价词替换句子,c#,sql,regex,algorithm,replace,C#,Sql,Regex,Algorithm,Replace,我想用对等的词来换句子; 例如: root -> put: set -> returns: switch -> between: among -> paragraphs: among paragraphs -> paragraphs: sections 参考数据库: 数据库有1000000条记录; 我可以从数据库中获取所有行,并将所有行都转换为文本。这是愚蠢的方法。 我需要一种将句子输入数据库的方法如何选择包含句子的
root
-> put: set
-> returns: switch
-> between: among
-> paragraphs: among paragraphs
-> paragraphs: sections
参考数据库:
数据库有1000000条记录;
我可以从数据库中获取所有行,并将所有行都转换为文本。这是愚蠢的方法。
我需要一种将句子输入数据库的方法如何选择包含句子的行
我有一种方法,比如用空格分割所有文本,然后尝试在数据库中进行选择。但它会传递带有空白的长文本。个案数目;;它将搜索它像,数量,案件,与单独的搜索。。。和记录将不再有用。您可以在sql server中使用替换功能
SELECT REPLACE('abcdefghicde','cde','xxx') GO
这将用xxx替换cde
在您的应用程序中,sql可能
UPDATE tablename set col=REPLACE(col,' put ',' set ') //Please notice there are 2 ' ' beside the word
您可以在一个数据库中组织替换数据库。所有单字表达式都位于第一级。多单词表达式存储为表达式中前面单词的后代。在您的示例中:
root
-> put: set
-> returns: switch
-> between: among
-> paragraphs: among paragraphs
-> paragraphs: sections
词根将是一本单词词典。每个节点都有一个子字典(在大多数情况下为空)和一个替换值。替换在中间词中可能为空,例如在ìn->this->case中,这不会有替换,因为in->this本身不是有效的替换
把你的句子分成两半,然后反复读单词。如果您发现可能的更换开始,请遵循trie并确定此位置最长的更换时间。替换它并从下一个单词开始继续迭代
between you and me -> among you and me
between other paragraphs -> among other sections
between paragraphs -> among paragraphs
拆分单词时,保持单词之间的空格和标点符号,仅当单词之间没有标点符号时,才跟随trie节点,以便生成类似
There must be something in between; paragraphs 1 and 2 seem to indicate that.
他被正确对待
如果您有许多句子需要用同一数据库中的替换项替换,那么这种方法应该是有效的。数据库trie只能构建一次。如果您只有几句话要替换,或者数据库经常更改,这不是一个好方法。请阅读MatchEvaluator:
There must be something in between; paragraphs 1 and 2 seem to indicate that.