2024-10-01 11:28:10 发布
网友
我正在使用nltk.word_tokenize在Dari语言中。问题是我们在一个单词之间有空格。 例如,单词"زنده گی"表示生命。同样,我们还有很多其他的词。所有以"ه"结尾的单词都必须给它一个空格,否则,它可以组合成{}。在
nltk.word_tokenize
"زنده گی"
"ه"
有谁能帮我使用[tag:regex]或任何其他不应该标记一个单词的一部分以"ه"结尾的单词,然后是"گ "字符。在
[tag:regex]
"گ "
为了解决波斯语中的这个问题,我们有一个字符叫做Zero-widthمnon-joiner(或波斯语中的نیمفالهه,半空间或半空间),它有两个符号代码。一种是标准的,另一种是不标准的,但广泛使用:
我知道达里和波斯人很相似。因此,首先您应该将زنده گی等所有单词更正为زندهگی,并将所有错误的空格转换为半个空格,然后您可以简单地使用此正则表达式来匹配一个句子中的所有单词:
زنده گی
زندهگی
[\u0600-\u06FF\uFB8A\u067E\u0686\u06AF\u200C\u200F]+
Online demo(测试字符串中的黑色项目符号是半个空格,对于regex101是无法识别的,但是如果您检查匹配信息部分并看到Match 5,您会发现这是正确的)
Match 5
为了将大文本中错误的空格转换成半个空格,有一个微软word callsvirastyar的插件,它是免费的、开源的。你可以安装它并完善你的整个文本。但是考虑到这个附加组件是为波斯人而不是达里人创建的。例如,在波斯语中,我们将زندهگی写成زندگی,它不能为您更正这个单词。但是像می شود这样的词很容易更正并转换为میشود。也可以向数据库添加自定义单词。在
زندگی
می شود
میشود
为了解决波斯语中的这个问题,我们有一个字符叫做Zero-widthمnon-joiner(或波斯语中的نیمفالهه,半空间或半空间),它有两个符号代码。一种是标准的,另一种是不标准的,但广泛使用:
我知道达里和波斯人很相似。因此,首先您应该将
زنده گی
等所有单词更正为زندهگی
,并将所有错误的空格转换为半个空格,然后您可以简单地使用此正则表达式来匹配一个句子中的所有单词:Online demo(测试字符串中的黑色项目符号是半个空格,对于regex101是无法识别的,但是如果您检查匹配信息部分并看到
Match 5
,您会发现这是正确的)为了将大文本中错误的空格转换成半个空格,有一个微软word callsvirastyar的插件,它是免费的、开源的。你可以安装它并完善你的整个文本。但是考虑到这个附加组件是为波斯人而不是达里人创建的。例如,在波斯语中,我们将
زندهگی
写成زندگی
,它不能为您更正这个单词。但是像می شود
这样的词很容易更正并转换为میشود
。也可以向数据库添加自定义单词。在相关问题 更多 >
编程相关推荐