我有多种语言的文本文件。如何在NLTK中选择性删除一种语言?
也许这根本就是不可能的,我应该放弃所有的希望。或者,也许有一种我没想到的聪明方法可以做到。
这是我得到的两个例子:
يَبِسَ - يَيْبَسُ (yabisa, yaybasu)[y-b-s][ي-ب-س](变干、变硬、变得僵硬)20:77 yabasan = 干的。يَسَّرَ - يُيَسِّرُ (yassara, yuyassiru)[y-s-r][ي-س-ر](使变得简单、方便)92:7 nuyassiruhuu = 我们会让他变得容易。
还有
Zu Hülfe! zu Hülfe! 救命! 救命!
Sonst bin ich verloren! 否则我就完了! Zu Hülfe! Zu Hülfe! 救命! 救命! Sonst bin ich verloren! 否则我就完了! Der listigen Schlange zum Opfer erkoren, 被选为狡猾蛇的祭品,Barmherzigige Götter! 仁慈的神啊! Schon nahet sie sich, 它已经靠近了,Schon nahet sie sich , 它已经靠近了,
... 如果要逐个删除一种语言的内容,以便进一步处理这些文本,那真是太麻烦了。
我在想,或许可以通过NLTK来实现这个目标,方法是把文本分割成小块(tokens),然后根据一个小的语料库来知道每个小块的来源,接着让NLTK只“重组”我选择的小块。这样做只是一个疯狂的幻想吗?
1 个回答
你可以使用nltk.NaiveBayesClassifier来完成你刚才提到的工作。
下面这个链接应该对你有帮助:http://nltk.googlecode.com/svn/trunk/doc/book/ch06.html
这个链接里有一个使用nltk.NaiveBayesClassifier进行性别识别的例子,你可以用同样的方法来识别语言。
你提到的第一个例子在使用nltk.NaiveBayesClassifier时效果很好,因为不同的字符集完全不一样。
在第二个例子中,可能会有一些专有名词在两种语言中拼写相同,这可能会导致语言识别出现错误。