2017-12-12 15 views
1

インド政府の調査サイトからダウンロードしたパンジャブ語のコーパスについてNLTKに分析を依頼しようとすると、そのスクリプトはGurmikhiです。私の主な目標は、コーパス全体で単語の頻度分布を得ることです。だから、ここでの目的はすべての単語をトークン化することです。インド語のNLTK CorpusReader

私の問題は、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) 

結果(完璧ではないが、実行可能):しかし

['\ufeffਜਤਿੰਦਰ', 'ਸਾਬੀ', 'ਜਲੰਧਰ,', '10', 'ਜਨਵਰੀ-ਦੇਸ਼-ਵਿਦੇਸ਼', 'ਦੇ',...] 

など、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は、各文字のグリフがいっぱいの単語であることを考えて、私はそれがインド語スクリプトの知識だと思うことはまだかなりありません:)

私はNLTKのドキュメントに基づいて推測することができるものから、問題Unicodeのエンコーディングと関係がありますが、ファイルとNLTKとの間にいくつかの意見の相違があるようです...私はできる限り私たちを変えて、グーグルで壁に当たっています。 アイデアをいただければ幸いです!

答えて

1

あなたは正しいです。ドキュメントによると、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')) 

そして出力:

のPythonでテスト
['ਜਤਿੰਦਰ', 'ਸਾਬੀ', 'ਜਲੰਧਰ', '10', 'ਜਨਵਰੀ-ਦੇਸ਼-ਵਿਦੇਸ਼', ...] 

3.

+0

ハハ!私はキャプテンを明白にする必要があることを知っていた! 私はあまりにも多くの木々、十分な森林ではなく、それをチョークします。 ありがとう! – Josmolio

関連する問題