c# - 使用同义词库的句子生成器

标签 c# thesaurus

我正在 .NET 中创建应用程序。

我得到一个正在运行的应用程序名称 http://www.spinnerchief.com/ .它做了我需要它做的事情,但我没有从谷歌那里得到任何帮助。 我的应用程序需要功能性结果,用户可以说一个句子,然后用户可以得到相同的句子,但措辞不同。

这是我想要的示例。

假设我说了一句“Pankaj is a good man”。输出应类似于以下输出:

Pankaj is a great person.
Pankaj is a superb man.
Pankaj is a acceptable guy.
Pankaj is a wonderful dude.
Pankaj is a superb male.
Pankaj is a good human.
Pankaj is a splendid gentleman

最佳答案

要对任意句子正确执行此操作,您需要对源句子执行自然语言分析。您可能想查看 SharpNLP library - 它是一个免费的 C#/.NET 自然语言处理工具库。

如果您正在寻找一种更简单的方法,您必须愿意在某种程度上牺牲正确性。例如,您可以创建一个触发词字典,当它们出现在句子中时,这些触发词将被同义词库中的同义词替换。这种方法的问题是确保您用等效的词性替换单词。在英语中,根据它们在句子中的上下文用法,某些词可能具有不同的词性(动词、形容词、副词等)。

您需要解决的另一个注意事项(如果您不使用 NLP 库)是词干提取。在大多数语言中,某些词性会根据它们所适用的主题(或句子的宾语、说话者或时态)进行变位/修饰(英语中的动词)。

如果您只想替换形容词(如您的示例所示),使用触发词的方法可能会奏效 - 但它不容易扩展。在你做任何事情之前,我建议你为你的问题域明确定义要求和规则......并使用它来决定采取哪条路线。

关于c# - 使用同义词库的句子生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3761519/

相关文章:

latex - Texstudio词库已损坏

dictionary - 有什么方法可以将字典连接到 Linux 中的 pdf 阅读器吗?

c# - 使用 C# 在 Windows 开始菜单搜索中自定义搜索选项卡

c# - XML 命名空间 'Bootstrapper' 中不存在标记 'clr-namespace:XXX'

c# - 从串口读取和发送数据

mysql - Wordnet SQL 说明

database - 寻找叙词表数据

c# - Quartz.net 导致 .NET CLR LocksAndThreads

c# - 使用 .NET WebAPI 进行服务器端验证

c# - SQL Server全文搜索词库