Duygu analizi için Twitter verilerini analiz ediyorum ve analizlerim için tweet'leri belirtmem gerekiyor.Özel word tokenizer
bu örnek tweet olalım:
tweet = "Barça, que más veces ha jugado contra 10 en la historia https://twitter.com/7WUjZrMJah #UCL"
nltk.word_tokenize()
yolunda tweet'leri sıfırlar ancak linkleri ve hashtag'lerle noktasında ayırır.
word_tokenize(tweet)
>>> ['Bar\xc3\xa7a', ',', 'que', 'm\xc3\xa1s', 'veces', 'ha', 'jugado', 'contra', '10', 'en', 'la', 'historia', 'https', ':', '//twitter.com/7WUjZrMJah', '#', 'UCL']`
Unicode karakterleri sağlam kalır, ancak bağlantılar bozulur. Ben olan özel bir regex dizgeciklerini, tasarladık:
Şimdiemoticons = r'(?:[:;=\^\-oO][\-_\.]?[\)\(\]\[\-DPOp_\^\\\/])'
regex_tweets = [
emoticons,
r'<[^>]+>', ## HTML TAGS
r'(?:@[\w\d_]+)', ## @-mentions
r'(?:\#[\w]+)', ## #HashTags
r'http[s]?://(?:[a-z]|[0-9]|[[email protected]&+]|[!*\(\),]|(?:%[0-9a-f][0-9a-f]))+', # URLs
r"(?:[a-z][a-z'\-_]+[a-z])", # words with - and '
r'(?:(?:\d+,?)+(?:\.?\d+)?)', ##numbers
r'(?:[\w_]+)', #other words
r'(?:\S)' ## normal text
]
#compiling regex
tokens_re = re.compile(r'('+'|'.join(regex_tweets)+')' ,re.IGNORECASE | re.VERBOSE)
tokens_re.findall(string)
>>> ['Bar', '\xc3', '\xa7', 'a', ',', 'que', 'm', '\xc3', '\xa1', 's', 'veces', 'ha', 'jugado', 'contra', '10', 'en', 'la', 'historia', 'https://twitter.com/7WUjZrMJah', '#UCL']
hashtag ve linkler onları istediğiniz şekilde görünür, ancak unicode charachters de sonları (gibi Barça ->['Bar', '\xc3', '\xa7', 'a']
yerine ['Bar\xc3\xa7a']
arasında Ben her iki entegre bir yolu var mı bu ?? Ya da gelen TweetTokenizer
çalıştık ??
unicode karakterleri içeren bir düzenli ifade nltk.tokenize
kütüphanesi, ama çok kullanışlı değildi.
Ayrıca 're.U' işaretini de belirtmeniz gerekir. re.IGNORECASE | re.VERBOSE | re.UNICODE'. Ayrıca, [\ w \ d _] + '=' \ w + 'olduğunu unutmayın. Ayrıca, bu '(?: (?: \ D + ,?) + (?: \.? \ D +)?)' Kırılgan görünüyor. –
@ WiktorStribiż bunu yaptı, ama hiçbir şey değişmedi. – Krishh
@ WiktorStribiżew Düzenli ifadeleri daha sonra optimize edip onları daha sağlam hale getirmek için kullanacağım, normal ifadeler şimdilik iyi çalışıyor, unicode kelimeleri yakalamam gerekiyor. – Krishh