2017-11-06 8 views
0

I列データや文章のpython NLTK計算

どんな人

世界私は

世界

のように私の言葉を分割され、ここで何をする必要があるか

すべての人に

ので。私はNLTKを使用せずにこれをしなければなりません。

私は1つを試してみましたが、それは私にユニコードデータを与えているが、私は適切なウルドゥー語でそれをしたいです。

コード:このコードの

import codecs 
import re 
import sys 
import io 
import itertools 
fil1 = codecs.open(".txt","r+", encoding="utf-8") 
fil3 = codecs.open(".txt","w",encoding="utf-8") 
ans=[] 
for line in fil1: 
    arr = line.split() 
    for i in range(len(arr)): 
     if i < len(arr)-1: 
      ans.append([[arr[i]], [arr[i+1]]]) 
    print ans 

出力:

[[U '\ u062f \ u0646 \ u06cc \ u0627']、[U '\ u06a9 \ u06d2']]、 [[U '\ u06a9 \ u06d2']、[U '\ u06a9 \ u0633 \ u06cc']]、 [[U '\ u06a9 \ u0633 \ u06cc']、[U '\ u0628 \ u06be \ u06cc'] ]、 [[U '\ u0628 \ u06be \ u06cc']、[U '\ u0627 \ u0646 \ u0633 \ u0627 \ u0646']]、 [[U '\ u0627 \ u0646 \ u0633 \ u0627 \ u0646'] 、[U '\ u06a9 \ u06cc']]、 [[U '\ u06a9 u06cc \']、[ U '\ u0633 \ u0628']]

方法NLTKまたは任意のライブラリを使用せずに、このように私のデータを分割するには?文字列はUnicodeとして保存され、リスト、dictsなどでそのように印刷されているので、

+1

あなたが実行されているコードを追加していただけますか?また、むしろイメージよりも、テキストに出力を変更します。 – BenignBeppe

+0

は大丈夫エンコーディングの問題であると思われる、ファイルに書き込み、彼らがどのように見えるかを参照しようとすると、 'UTF-8'を使用しようと、私は上記のコードと出力 – smartF

+0

を追加している行って。 –

答えて

0

は、あなたの修正はちょうどあなたがファイルへの書き込みをしている場合、あなたは正しくエンコーディングを設定することを確認する必要があり、以下のロジックを使用し、それを適用Here

です。

myString = "دنیا کے کسی بھی انسان کی" 

import codecs 
import re 
import sys 
import io 
import itertools 

ans=[] 

ans=[] 
arr = myString.split(" ") 
for i in range(len(arr)): 
    if i < len(arr)-1: 
     print arr[i] + " " + arr[i+1] 

Output

+0

ありがとう、私の答えを得たあなたは歓迎@smartFある – smartF

+0

ありがとう –

0

それはそのように見える理由がありますあなたが出力するプログラムに正しい文字が必要な場合は、一覧を印刷することができ、そのよう:ファイルへの書き込み

for word1, word2 in ans: 
    print word1[0], word2[0] 

も、正しい文字を提供します。ここで

+0

はい私は あなたは私の命を救っ – smartF