テキスト分類の問題の一部として、私はテキストデータセットを消去しようとしています。これまでのところ私はテキスト以外のすべてを削除していました。句読点、数字、絵文字 - すべてが削除されました。今では絵文字をフィーチャーとして使用しようとしているため、絵文字だけでなく絵文字も保持したいと考えています。テキストから言葉や絵文字以外のものをすべて削除するには?
まず、テキスト内の絵文字を検索し、他の言葉/絵文字と区別しています。これは、それぞれの絵文字を個別に/個別に処理する必要があるためです。だから私は絵文字を検索し、その両端にスペースを入れます。
しかし、私は単語と絵文字のための既知の正規表現をどのように組み合わせるかを考えています。ここに私の現在のコードは次のとおりです。
import re
def clean_text(raw_text):
padded_emoji_text = pad_emojis(raw_text)
print("Emoji padded text: " + padded_emoji_text)
reg = re.compile("[^a-zA-Z]") # line a
# old regex to remove everything except words
letters_only_text = reg.sub(' ', raw_text)
print("Cleaned text: " + letters_only_text)
# Code to remove everything except text and emojis
# How?
def pad_emojis(raw_text):
print("Original Text: " + raw_text)
reg = re.compile(u'['
u'\U0001F300-\U0001F64F'
u'\U0001F680-\U0001F6FF'
u'\u2600-\u26FF\u2700-\u27BF]',
re.UNICODE)
#padding the emoji with space at both ends
new_text = reg.sub(r' \g<0> ',raw_text)
return new_text
text = "I am very #happy man! but my wife is not . 99/33"
clean_text(text)
現在のO/P:私は達成しようとしています何
Original Text: I am very #happy man! but my wife is not . 99/33
Emoji padded text: I am very #happy man! but my wife is not . 99/33
Cleaned text: I am very happy man but my wife is not
:
I am very happy man but my wife is not
質問:
1)私はどのようにemoji regexをregexという単語とともにregexのコンパイルに追加しますか? (行a)
2)私はより良い方法で、すなわち、絵文字を分離し、スペースでそれらを埋め込むために別の関数を書く必要なく、私は何を求めているのでしょうか?私はどういうわけか、これを避けることができると感じています。
[このPython 3デモ](http://rextester.com/YKDXU24273)を参照してください - 私はそれが1ステップでそれを行う方法を示していると思います。空白を「縮める」必要があるかどうかは分かりませんが、予想される結果は私が得るものとは少し異なります。 –
ねえ、それは素晴らしいです!それは間違いなく機能します。私は多くのユースケースを試してきましたが、すべてのケースで問題なく動作していたようです。そして、はい、私は質問を含まないテキストクリーニングの最後のステップであった空白を縮小する必要があります。それを世話してくれてありがとう。今あなたはこれが答えであることを追加できますか?また、正規表現は私が理解するには複雑すぎる。あなたの答えにある程度説明できれば素晴らしいことでしょう。どうもありがとう! –
さて、ちょっと待ってください。私はここでも縮んでいる複数の空白を追加します。 –