如何在Python中生成一组相似的字符串

我想知道如何基于Levenshtein距离(字符串编辑距离)生成一组相似的字符串。理想情况下,我希望传入一个源字符串(即用于生成与其相似的其他字符串的字符串)、需要生成的字符串数量以及一个阈值作为参数,即生成集合中字符串之间的相似度应大于该阈值。我想知道应该使用哪些Python包来实现这一点?或者有任何实现这个功能的想法吗?


回答:

我认为你可以从另一个角度(反向)来思考这个问题。

  • 给定一个字符串,比如是sittin
  • 给定一个阈值(编辑距离),比如是k
  • 然后你应用k步内的不同“编辑”组合。

例如,假设k = 2。假设你允许的编辑模式有:

  • 删除一个字符
  • 添加一个字符
  • 用另一个字符替换一个字符。

那么逻辑大致如下:

input = 'sittin'for num in 1 ... n:  # 假设你想要生成n个字符串  my_input_ = input  # 假设编辑距离应小于或等于k;  # 但大于或等于一  for i in in 1 ... randint(k):     从(删除、添加、替换)中随机选择一种编辑模式    执行它!并更新my_input_

如果你需要坚持使用预定义的字典,这会增加一些复杂性,但仍然是可行的。在这种情况下,编辑必须是有效的。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注