2016-04-11 14 views
2

WhatsAppのチャットテキストを1つの単語に分割しようとしていますが、emojisのユニコードを追加の区切り文字として使用する方法がわかりません。Python:区切り文字としてemojisを含むテキストを分割する

http://unicode.org/emoji/charts/full-emoji-list.htmlによると、ユニコードの例はU + 1F602です。私は以下を試しましたが、うまくいきません。

text = file.read() 
delimiters = " ", "..", "\"", "<", ">", "/", u"U+1F602" 
regexPattern = '|'.join(map(re.escape, delimiters)) 
list = re.split(regexPattern, text) 
+0

どのようなpythonのバージョンですか?定義は機能しません。ここで(python2.7.11 +)このスニペット(https://gist.github.com/lauromoura/f46442e25d1e08519af4aaef972cad3b)はすべての文字を分割して問題なく動作しました。たぶん、入力文字列に関連する何か? –

+0

ok、私はPython 2.7.10を使用しています。多分それがなぜ動かないのですか? – Philip94

+0

私はそれを修正しようとしています – Philip94

答えて

1

u"U+1F602"それをプリントしてみてください、Unicode文字ではありません、あなたが非BMP Unicode文字のためunichr(0x1f602)

2

リテラルだっ意味することは、Pythonでu"\U0001F602"で、u"U+1F602"ではありません。

(それだけでは)正規表現を修正するには不十分ですが、 flags=re.UNICODEre.split()に渡します。 type(text)unicodeであることを確認してください。

私はあなたがwords = re.findall(ur"\w+", text, flags=re.UNICODE)を試みることができる単一の単語

へのWhatsAppチャットテキストを分割しようとしています。一般に、テキストを部分に分割する方法は文脈に依存することがあり、例えばhow nltk.tokenize.TweetTokenizer is implementedを参照することができる。

関連する問題