2016-03-14 2 views
-2

Итак, для задания интеллектуального анализа текста мы пытаемся собрать твиты (особенно тексты) и запустите тег stanford NER , чтобы узнать, есть ли упомянутые лица или местоположения. Это также можно сделать, проверив хэштеги, но идея состоит в том, чтобы использовать некоторые инструменты для интеллектуального анализа текста.Python: кодирование символов, но по-прежнему работа со списком

, так что скажем, что у нас есть данные, загруженные из файла cPickle, который сохраняется, загружается и разбивается на пробел.

hil_text = [[u'Man', u'is', u'not', u'a', u'issue', u'cah', u'me', u'pum', u'pum', u'tun', u'up', u'#InternationalWomensDay', u'#cham', u'#empowerment', u'#Clinton2016', u'#PiDay2016'], [u'Shonda', u'Land', u'came', u'out', u'with', u'a', u'great', u'ad', u'for', u'Clinton:https://t.co/Vfg9lAKNaH#Clinton2016'], [u'RT', u'@BeaverforBernie:', u'Trump', u'and', u'the', u"#Clinton's", u'are', u'the', u'same.', u'They', u'worship', u'$$$$$.', u'https://t.co/yUXoJaL6mJ'], [u'[email protected]', u'on', u'#Clinton,', u'Reagans', u'&', u'#AIDS:', u'\u201cClinton', u'just', u're-wrote', u'history\u201d', u'https://t.co/L3YuIyFjxo', u'Clinton', u'incapable', u'of', u'telling', u'truth.'], [u'#KKK', u'Leader', u'Gets', u'Behind', u'This', u'Democratic', u'Candidate', u'https://t.co/p9yTQ2sXmV', u'How', u'fitting!', u'#Hillary2016', u'#HillaryClinton', u'#Hillary', u'#Killary', u'#tcot'], [u'#KKK', u'Leader', u'Gets', u'Behind', u'This', u'Democratic', u'Candidate', u'https://t.co/p9yTQ2sXmV', u'How', u'fitting!', u'#Hillary2016', u'#HillaryClinton', u'#Hillary', u'#Killary', u'#tcot'], [u'RT', u'@jvlibrarylady:', u'President', u'Clinton', u'at', u'rally', u'for', u'Hillary', u'at', u'Teamsters', u'Local', u'245', u'in', u'Springfield,', u'Mo.', u'#HillaryClintonForPresident', u'https://t.\u2026'], [u'RT', u'@jvlibrarylady:', u'President', u'Clinton', u'at', u'rally', u'for', u'Hillary', u'at', u'Teamsters', u'Local', u'245', u'in', u'Springfield,', u'Mo.', u'#HillaryClintonForPresident', u'https://t.\u2026']] 

Теггер не принимает юникод, поэтому, пытаясь заставить его работать, мы попытались сделать следующее.

for word in hil_text: 
    for x in word: 
     print x.encode('utf-8',errors='ignore') 
     print tagger.tag(x.encode('utf-8',errors='ignore') 

Это приводит к тому, что x является словом, но теггер помечает каждую букву отдельно.

Есть ли способ закодировать его и отправить его через теггер как слово? Или, другими словами, кодировать части списка, но сохранить эту часть в списке?

И почему теггер отмечает каждую букву, а не только целую х?

ответ

0

Похоже, tagger.tag ожидает последовательность строк. Но вы передаете одну строку , которую python будет рассматривать как последовательность символов. Чтобы исправить это, попробуйте следующее:

for section in hil_text: 
    # encode each word in the section, and put them in a new list 
    words = [word.encode('utf-8') for word in section] 
    # pass the list of encoded words to the tagger 
    print tagger.tag(words)