2016-11-01 9 views
-1

与えられた文字列からDevanagariテキストを取り出すことができるpythonコードを書いてみたいが、同じものに対してUnicodeを使う方法はわからない。
私の入力は、私だけではないデーヴァナーガリーで書かれたテキストをしたい、このフォームユニコードの助けによって与えられた文字列からDevanagriテキストを取り除く方法

Translate 'अंक' 
36 अ  [V] 
36 ं  [n] 
57 ं (क [N] 
36 क [kV] 
--- 
(hi)'VNk(en) 

になることを数字や英語のアルファベット。
私の出力は、このフォーム
である必要があり、私はこのコード

import codecs 

file = codecs.open("C:/Users/prince/Desktop/hindi.txt",mode = "r", encoding = "utf-8") 
file_dic = codecs.open("C:/Users/prince/Desktop/dic.txt",mode = "w", encoding = "utf-8") 
for i in range (0, 330): 
    u = file.read() 
    if (u[i] >= 0900) && (u[i]<= 097F): 
     file_dic.write(u) 
     file_dic.write(' ') 
+0

あなたはより具体的な例として、あなたが試した、おそらくいくつかのサンプルコードを提供することはできますか? – Daenyth

+0

PythonでテキストのUnicode値を使用する方法に関する情報がありませんでした。私は問題のコードを含んでいます。 @Daenyth – Prince

答えて

0

を試してみましたअंकअंं(कक

正規表現は、一緒にあなたのデーヴァナーガリー文字を維持します。あなたの例では、間にスペースを印刷します。

#!python3 
#coding:utf8 

import re 

text = '''\ 
Translate 'अंक' 
36 अ  [V] 
36 ं  [n] 
57 ं (क [N] 
36 क [kV] 
--- 
(hi)'VNk(en) 
''' 

print(' '.join(re.findall(r'[\u0900-\u097f\ua8e0-\ua8ff]+',text))) 

出力:

すべての文字も下にも同様のUnicodeでデーヴァナーガリー拡張範囲を追加しますあなたの例では、ファイルへの書き込みは210
अंक अ ं ं क क 

import re 

with open("C:/Users/prince/Desktop/hindi.txt",mode = "r", encoding = "utf-8") as file: 
    text = file.read() 
with open("C:/Users/prince/Desktop/dic.txt",mode = "w", encoding = "utf-8") as file_dic: 
    file_dic.write(' '.join(re.findall(r'[\u0900-\u097f\ua8e0-\ua8ff]+',text))) 
+0

あなたは '{print( '' .join(r '[\ u0900- \ u097f \ ua8e0- \ ua8ff] +'、text)))}'このコードを教えてください。また、私は['('、 ')'、 '_'、 'B']のようにいくつかのシンボルを出力に含めたいと思っています。どのように出力に含めることができますか @MarkTolonen – Prince

+0

[re](https://docs.python.org/3/library/re.html)は、[正規表現]を実装するモジュールです(https://docs.python .org/3/library/re.html#regular-expression-syntax)。 '[\ u0900- \ u097f \ ua8e0- \ ua8ff] +'は、範囲900h-97fhとa8e0h-a8ffhの1つ以上のUnicode文字と一致します。 [findall](https://docs.python.org/3/library/re.html#re.findall)は一致する文字列のリストを返し、[join](https://docs.python.org/3 /library/stdtypes.html#str.join)は、文字列のリストをスペースで区切られた単一の文字列にマージします。 –

+0

ありがとうございます。これらの余分なシンボルやアルファベットを出力に含めてみてはどうでしょうか?私は音声認識のための辞書を作っていますので、それらの余分な記号が私の辞書に必要です。だから私もそのことで私を助けてください。 – Prince

関連する問題