Python中的字符串协调

数据挖掘 Python
2022-01-29 16:48:36

刚刚登陆实体解析(匹配)项目。我在 python 中工作,我想知道是否有现成的字符串协调函数实现,包括:

  • 去除尾随空格
  • 删除多个空格
  • 删除特殊字符(例如 ü)
  • ...

所有这一切都可以通过字符串和正则表达式操作轻松完成,但我不想重新发明轮子并利用已经准备好的东西(也许从中学习,我是否需要稍后继续进行自定义)。有现成的库吗?试过nltk,它建议使用正则表达式、textblob和谷歌搜索,但到目前为止没有发现任何真正有用的东西——可能是因为我没有使用正确的关键字。

例如,有一个函数可以用形态学等价物替换来自外语的特殊字符 - 例如德语中的“ß”用“ss”(“straße”->“strasse”)

编辑:澄清 在我的问题中,我并没有真正指定手头的问题。这是因为我想要达到的实际上是一个“语法”,它可以让我和我团队中的其他人定义协调/规范化操作的工作流程。

我目前正在将其作为一系列函数 f: string -> string 工作。某些步骤是否是其中的一部分,这将取决于手头的问题。工作流程可能会经过经验测试(我们将选择导致最佳算法的工作流程)

1个回答

注意:这比协调更经常被称为规范化URLifyURL-safe也是可以帮助您进行搜索的术语。

whitespace
结合内置函数string.split+string.join是规范中间和尾随空格的可靠方法,包括制表符、回车符等。

非 ASCII 字符 ASCII
化实际上与规范化有些相反。也就是说,您应该认真考虑是否真的要将“München”转换为“muenchen”,而不是将“muenchen”转换为正确的“München”。

如果您确实想朝那个方向发展,您应该提供有关用例和所需转换的更多详细信息。以下是一些可能的输入示例:

明斯特大街在哪里?
ısparta'daki istanbul'dakı ve gülenciler!
Isparta'daki İstanbul'dakı ve Gülenciler!
¿Cómo está?
Это вообще фарс...
Биће белајааа, чорба
Biće belajaaa, čorba
您现在可以恢复您的简历了。

转换为 ASCII 将是有损的,并且需要做出一些决定,通常取决于源语言和目标语言。

如果您定义了可能的输入、范围和期望的行为,那么其他人可以提出建议。