python 拆分文本文件功能
python split a text file function
我写了一个 tokenize 函数,基本上读取字符串表示并将其拆分为单词列表。
我的代码:
def tokenize(document):
x = document.lower()
return re.findall(r'\w+', x)
我的输出:
tokenize("Hi there. What's going on? first-class")
['hi', 'there', 'what', 's', 'going', 'on', 'first', 'class']
期望的输出:
['hi', 'there', "what's", 'going', 'on', 'first-class']
基本上,我希望带撇号的单词和连字符在列表中保留为单个单词,并带有双引号。我怎样才能改变我的功能以获得所需的输出。
\w+
匹配一个或多个 word 字符;这不包括撇号或连字符。
你需要在这里使用一个character set来告诉Python你想要匹配的确切内容:
>>> import re
>>> def tokenize(document):
... return re.findall("[A-Za-z'-]+", document)
...
>>> tokenize("Hi there. What's going on? first-class")
['hi', 'there', "what's", 'going', 'on', 'first-class']
>>>
您也会注意到我删除了 x = document.lower()
行。这不再是必需的,因为我们可以通过简单地向字符集添加 A-Z
来匹配大写字符。
我写了一个 tokenize 函数,基本上读取字符串表示并将其拆分为单词列表。
我的代码:
def tokenize(document):
x = document.lower()
return re.findall(r'\w+', x)
我的输出:
tokenize("Hi there. What's going on? first-class")
['hi', 'there', 'what', 's', 'going', 'on', 'first', 'class']
期望的输出:
['hi', 'there', "what's", 'going', 'on', 'first-class']
基本上,我希望带撇号的单词和连字符在列表中保留为单个单词,并带有双引号。我怎样才能改变我的功能以获得所需的输出。
\w+
匹配一个或多个 word 字符;这不包括撇号或连字符。
你需要在这里使用一个character set来告诉Python你想要匹配的确切内容:
>>> import re
>>> def tokenize(document):
... return re.findall("[A-Za-z'-]+", document)
...
>>> tokenize("Hi there. What's going on? first-class")
['hi', 'there', "what's", 'going', 'on', 'first-class']
>>>
您也会注意到我删除了 x = document.lower()
行。这不再是必需的,因为我们可以通过简单地向字符集添加 A-Z
来匹配大写字符。