印度语NLTK读写器

2024-05-23 17:46:41 发布

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

试图让NLTK对从印度政府研究网站下载的旁遮普语语料库进行分析,脚本是Gurmikhi。我的主要目标是得到整个语料库的词频分布,所以这里的目标是让所有的单词都标记化。在

我的问题似乎在于NLTK如何读取文本,因为当我使用Python的内置方法时:

    with open("./Punjabi_Corpora/Panjabi_Monolingual_TextCorpus_Sample.txt", "r") as f:
        lines = [line for line in f]
        fulltxt = "".join(lines)
        print(fulltxt.split)

结果(不完美,但可行):

^{pr2}$

但是,当使用NLTK时,例如:

    from nltk.corpus import PlaintextCorpusReader
    corpus_root = "./Punjabi_Corpora"
    corpus = PlaintextCorpusReader(corpus_root,"Panjabi Monolingual_TextCorpus_Sample.txt")
    corpus.words('Panjabi_Monolingual_TextCorpus_Sample.txt')

我得到以下信息

    ['ਜਤ', 'ਿੰ', 'ਦਰ', 'ਸ', 'ਾ', 'ਬ', 'ੀ', 'ਜਲ', 'ੰ', 'ਧਰ', ...]

在这里,NLTK认为每个字符glyph都是一个完整的单词,我想这是因为还没有完全掌握脚本知识:)

根据NLTK文档我可以推测,这个问题与Unicode编码有关,似乎文件和NLTK之间存在一些分歧。。。我一直在尽我所能的修补和谷歌搜索,已经撞到了墙上。 任何想法都将不胜感激!在


Tags: sampletxt脚本目标linecorpus单词lines
1条回答
网友
1楼 · 发布于 2024-05-23 17:46:41

你说得对。根据doc,PlainTextCorpusReader是为ascii输入设置的读卡器。因此,它不能正常工作也就不足为奇了。在

我不是这方面的专家,但我试着用IndianCorpusReader代替你的数据集,它似乎起作用了:

from nltk.corpus import IndianCorpusReader
corpus = IndianCorpusReader("./Punjabi_Corpora", "Panjabi Monolingual_TextCorpus_Sample.txt")
print(corpus.words('Panjabi Monolingual_TextCorpus_Sample.txt'))

以及输出:

^{pr2}$

在python3上测试过。在

相关问题 更多 >