根据'\ n'拆分字符串中的单词

时间:2016-10-26 17:16:19

标签: python string split

伙计我有一个字符串,我正在努力制作一个ngram,但是我有一个问题,当我做ngram = ngrams(raw_text.split(" "), n=1 输出是

[('come',), ('here,',), ('girl\noh,',), ('you',)....]

问题在于我的字符串中的单词排列如下:

come here, girl\noh, you want...

这意味着我的ngram比它需要的大得多 那么我该怎么做才能获得像

这样的字符串
come here , girl \n oh , you ... 

这样我的ngram就是一个更小的订单 多谢你们 我希望你们都过得愉快

编辑我现在知道我使用分隔符并且已经改变了......所以\ n问题消失了,但是我可以将字符串拆分成带有标点符号的字符串吗?

1 个答案:

答案 0 :(得分:0)

  

我可以拆分字符串中包含标点符号的单词吗?

您的最终结果仍然不明确:您想要包含标点符号还是完全丢弃标点符号?假设您不需要标点符号,使用re.split()这是微不足道的:

>>> import re
>>> re.split(r'\W+', "Hello, this'll split by\n \nwhitespace and also puncutation!")
['Hello', 'this', 'll', 'split', 'by', 'whitespace', 'and', 'also', 'puncutation', '']

如果你想以更聪明的方式分裂,这很快就会变得复杂。我建议使用nltk工具包,该工具包提供其他选项nltk.word_tokenize

>>> import nltk
>>> nltk.word_tokenize("Hello, this'll split by\n \nwhitespace and also puncutation!")
['Hello', ',', 'this', "'ll", 'split', 'by', 'whitespace', 'and', 'also', 'puncutation', '!']