在Python中自动完成字符串?

2024-04-19 03:35:25 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否有一个函数可以放入一个字符串中,如果这个字符串包含可以自动完成的单词(在英语中),它将返回true(例如,如果字符串是“bl”,那么这个函数将返回true,因为“bl”是一个单词),如果不是(比如字符串是“blszc”),那么它将返回false。在


Tags: 函数字符串falsetrue单词blblszc
1条回答
网友
1楼 · 发布于 2024-04-19 03:35:25
  1. 你需要一个内置词典/词库来自动完成单词。 您可以将NLTK与Wordnet一起使用:http://www.nltk.org/howto/wordnet.html

  2. 你需要一个评分来给建议打分,它可以是字典式的,也就是说,对于“bl”建议,比如“blaze”,“blah”会出现在“blue”之前。 也可以是基于这个词在共同语言中的重要性。大致来说,可以使用NLTK中Brown Corpus中单词的频率分布作为起点。(示例:https://stackoverflow.com/a/38234480/533399

  3. 您需要一个快速的rest服务,因为每次击键时都会发生自动完成(如果被限制,则每隔几次击键一次,并且用户输入的速度非常快)。为此,您需要将您的数据存储在一个数据存储中,其中retreival针对前缀“例如”blu将返回“blue”、“blunt”等进行了优化。我的建议是Solr/ElasticSearch (这也将允许您在将来具有拼写更正功能或“您的意思是吗”)

  4. 作为一个简单的优化,你应该把你的自动完成建议限制在任何前缀的前5-10个结果,你的排名应该是如此的好,最好的匹配出现在建议列表的较高位置。

相关问题 更多 >