Вернитесь к предложению как оригинал после токенизации с помощью nltk word_tokenize - PullRequest
0 голосов
/ 02 июля 2019

Если я разделю предложение с помощью nltk.tokenize.word_tokenize(), а затем воссоединюсь с ' '.join(), это не будет точно так же, как оригинал, потому что слова с пунктуацией внутри них будут разбиты на отдельные токены.

Как программно воссоединитьсякак это было раньше?

from nltk import word_tokenize

sentence = "Story: I wish my dog's hair was fluffier, and he ate better"
print(sentence)
=> Story: I wish my dog's hair was fluffier, and he ate better

tokens = word_tokenize(sentence)
print(tokens)
=> ['Story', ':', 'I', 'wish', 'my', 'dog', "'s", 'hair', 'was', 'fluffier', ',', 'and', 'he', 'ate', 'better']

sentence = ' '.join(tokens)
print(sentence)
=> Story : I wish my dog 's hair was fluffier , and he ate better

Обратите внимание, : и 's отличаются от оригинала.

Ответы [ 2 ]

1 голос
/ 03 июля 2019

С этот ответ .Вы можете использовать MosesDetokenizer в качестве решения.

Просто запомните, сначала скачайте подпакет nltk: nltk.download('perluniprops')

>>>import nltk
>>>sentence = "Story: I wish my dog's hair was fluffier, and he ate better"
>>>tokens = nltk.word_tokenize(sentence)
>>>tokens
['Story', ':', 'I', 'wish', 'my', 'dog', "'s", 'hair', 'was', 'fluffier', ',', 'and', 'he', 'ate', 'better']
>>>from nltk.tokenize.moses import MosesDetokenizer
>>>detokens = MosesDetokenizer().detokenize(tokens, return_str=True)
>>>detokens
"Story: I wish my dog's hair was fluffier, and he ate better"
0 голосов
/ 03 июля 2019

После присоединения вы можете использовать функцию замены

 sentence.replace(" '","'").replace(" : ",': ')
 #o/p 
 Story: I wish my dog's hair was fluffier , and he ate better
...