正确的regexp为日语句子tokenizer- python

时间:2011-03-03 07:26:21

标签: python regex tokenize nltk

这是我当前的文本,但是正则表达式分割句子修正是不正确的。请帮助纠正我的正则表达式,谢谢。

import nltk
import os, sys, re, glob
from nltk.tokenize import RegexpTokenizer

jp_sent_tokenizer = nltk.RegexpTokenizer(u'[^ 「」!?。]*[!?。]')

para = []
para.append (jp_sent_tokenizer.tokenize(u' 「オタ」とも呼ばれているこのペラナカン(華人)の特製料理は、とてもおいしいスナック料理です。これは、ココナッツミルクやチリペースト、レモングラス、ガーリックと一緒に魚を砕き、それを、蒸して柔らかくしたバナナの葉に包んで炭火で軽く焼いた料理です。このレシピは、アジアの数地域で知られています。「オタオタ(otak otak )」は、マレー語で「脳」を意味します。この「オタオタ」という名前は、この料理の柔らかくトロリとした食感から由来しています。魚を使ったオタオタが、最も一般的ですが、エビやイカ、カニ、魚の頭などを用いたものなど、そのバリエーションは豊富です。 ')

for index in range(len(para[0])):
          print para[0][index]
          print 'this is eos'
          #print line
print 'this is eop'

我收到了这个输出:

とも呼ばれているこのペラナカン(華人)の特製料理は、とてもおいしいスナック料理です。
this is eos
これは、ココナッツミルクやチリペースト、レモングラス、ガーリックと一緒に魚を砕き、それを、蒸して柔らかくしたバナナの葉に包んで炭火で軽く焼いた料理です。
this is eos
このレシピは、アジアの数地域で知られています。
this is eos
を意味します。
this is eos
という名前は、この料理の柔らかくトロリとした食感から由来しています。
this is eos
魚を使ったオタオタが、最も一般的ですが、エビやイカ、カニ、魚の頭などを用いたものなど、そのバリエーションは豊富です。
this is eos
this is eop

正确的输出应为:

 「オタ」とも呼ばれているこのペラナカン(華人)の特製料理は、とてもおいしいスナック料理です。
this is eos
これは、ココナッツミルクやチリペースト、レモングラス、ガーリックと一緒に魚を砕き、それを、蒸して柔らかくしたバナナの葉に包んで炭火で軽く焼いた料理です。
this is eos
このレシピは、アジアの数地域で知られています。
this is eos
「オタオタ(otak otak )」は、マレー語で「脳」を意味します。
this is eos
「オタオタ(otak otak )」は、マレー語で「脳」を意味します。この「オタオタ」という名前は、この料理の柔らかくトロリとした食感から由来しています。
this is eos
魚を使ったオタオタが、最も一般的ですが、エビやイカ、カニ、魚の頭などを用いたものなど、そのバリエーションは豊富です。 
this is eos
this is eop

1 个答案:

答案 0 :(得分:3)

试试这个:

u'[^!?。]*[!?。]'

看起来引号(「」)属于句子,所以你想允许它们。

我应该警告,一般来说(在英语语法中),解析整个当前句子是非常困难的(甚至是不可能的)。 (考虑1.2Dr. Fleishman等。)