как выполнить хорошую токенизацию для слов, используя python - PullRequest
0 голосов
/ 14 июля 2020

У меня есть функция в python, которая разбивает предложение на слова с помощью токенизатора. Проблема в том, что когда я запускаю эту функцию, возвращаемый результат представляет собой одно слово без пробелов.

  • фактическое предложение:

'lovin Picture2Life.com !!! Y all fun apps r for iphone and not blackberry ?? !! '

  • результат:

' islovinpicturelifecomyallfunappsrforiphoneandnotblackberry '

где результат должен быть таким: is loving picture 2 life. ком ....

код:

ppt = '''...!@#$%^&*()....{}’‘ “”  “[]|._-`/?:;"'\,~12345678876543'''

#tekonize helper function
def text_process(raw_text):
    '''
    parameters:
    =========
    raw_text: text as input
    functions:
    ==========
    - remove all punctuation
    - remove all stop words
    - return a list of the cleaned text

    '''
    #check characters to see if they are in punctuation
    nopunc = [char for char in list(raw_text) if char not in ppt]

    
    
    # join the characters again to form the string
    nopunc = "".join(nopunc)
    
    #now just remove ant stopwords
     
    words = [word for word in nopunc.lower().split() if   word.lower() not in stopwords.words("english")]
    return words

ddt= data.text[2:3].apply(text_process)
print("example: {}".format(ddt))

1 Ответ

0 голосов
/ 14 июля 2020

Ну, в вашей первой строке

ppt = '''...!@#$%^&*()....{}’‘ “”  “[]|._-`/?:;"'\,~12345678876543'''

вы включаете символ пробела в последовательность ‘ “” “, поэтому он удаляет все пробелы (и, следовательно, пробелы), когда он запускает понимание списка :

nopunc = [char for char in list(raw_text) if char not in ppt]
...