如何处理字符之间有空格的单词?

2024-10-01 11:28:10 发布

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

我正在使用nltk.word_tokenizeDari语言中。问题是我们在一个单词之间有空格。
例如,单词"زنده گی"表示生命。同样,我们还有很多其他的词。所有以"ه"结尾的单词都必须给它一个空格,否则,它可以组合成{}。在

有谁能帮我使用[tag:regex]或任何其他不应该标记一个单词的一部分以"ه"结尾的单词,然后是"گ "字符。在


Tags: 标记语言tag结尾字符单词regexword
1条回答
网友
1楼 · 发布于 2024-10-01 11:28:10

为了解决波斯语中的这个问题,我们有一个字符叫做Zero-widthمnon-joiner(或波斯语中的نیم‌فالهه,半空间或半空间),它有两个符号代码。一种是标准的,另一种是不标准的,但广泛使用:

  1. \u200C:http://en.wikipedia.org/wiki/Zero-width_non-joiner
  2. \u200F:从右向左标记(http://unicode-table.com/en/#200F

我知道达里和波斯人很相似。因此,首先您应该将زنده گی等所有单词更正为زنده‌گی,并将所有错误的空格转换为半个空格,然后您可以简单地使用此正则表达式来匹配一个句子中的所有单词:

[\u0600-\u06FF\uFB8A\u067E\u0686\u06AF\u200C\u200F]+

Online demo(测试字符串中的黑色项目符号是半个空格,对于regex101是无法识别的,但是如果您检查匹配信息部分并看到Match 5,您会发现这是正确的)

为了将大文本中错误的空格转换成半个空格,有一个微软word callsvirastyar的插件,它是免费的、开源的。你可以安装它并完善你的整个文本。但是考虑到这个附加组件是为波斯人而不是达里人创建的。例如,在波斯语中,我们将زنده‌گی写成زندگی,它不能为您更正这个单词。但是像می شود这样的词很容易更正并转换为می‌شود。也可以向数据库添加自定义单词。在

相关问题 更多 >