The*_*han 7 python regex nltk nltk-trainer nltk-book
我使用的nltk.word_tokenize是达里语.问题是我们在一个单词之间有空格.
例如,"???? ??"这意味着生命.和相同的; 我们还有很多其他的话.所有以字符结尾的单词"?"我们必须给它一个空格,否则,它可以组合起来如"??????".
任何人都可以帮助我使用[tag:regex]或任何其他方式不应该标记一个单词的一部分结束的单词"?",之后,将有该"? "字符.
为了解决波斯语中的这个问题,我们有一个名为 Zero-width_non-joiner 的字符(或 \xd9\x86\xdb\x8c\xd9\x85\xe2\x80\x8c\xd9\x81\xd8\xa7\xd8\xb5\xd9 \x84\xd9\x87(波斯语或半空格或半空格)有两个符号代码。一种是标准的,另一种不是标准的,但广泛使用:
\n\n据我所知,达里语与波斯语非常相似。因此,首先您应该更正所有单词,例如\xd8\xb2\xd9\x86\xd8\xaf\xd9\x87 \xda\xaf\xdb\x8cto\xd8\xb2\xd9\x86\xd8\xaf\xd9\x87\xe2\x80\x8c\xda\xaf\xdb\x8c并将所有错误的空格转换为半空格,然后您可以简单地使用此正则表达式来匹配句子中的所有单词:
[\\u0600-\\u06FF\\uFB8A\\u067E\\u0686\\u06AF\\u200C\\u200F]+\nRun Code Online (Sandbox Code Playgroud)\n\n在线演示(测试字符串中的黑色子弹是半个空格,正则表达式101无法识别,但如果您检查匹配信息部分,Match 5您会发现这是正确的)
为了将大文本的错误空格转换为半空格,有一个名为virastyar的 Microsoft Word 插件,它是免费且开源的。您可以安装它并完善您的整个文本。但考虑到这个插件是为波斯语而不是达里语创建的。例如,在波斯语中,我们写\xd8\xb2\xd9\x86\xd8\xaf\xd9\x87\xe2\x80\x8c\xda\xaf\xdb\x8c为\xd8\xb2\xd9\x86\xd8\xaf\xda\xaf\xdb\x8c,它无法为您纠正这个词。但其他词 like\xd9\x85\xdb\x8c \xd8\xb4\xd9\x88\xd8\xaf很容易纠正并转换为\xd9\x85\xdb\x8c\xe2\x80\x8c\xd8\xb4\xd9\x88\xd8\xaf. 您还可以将自定义单词添加到数据库中。