- 3.10 小结
3.10 小结
- 在本书中,我们将文本作为一个单词列表。“原始文本”是一个潜在的长字符串,其中包含文字和用于设置格式的空白字符,也是我们通常存储和可视化文本的方式。
- 在 Python 中指定一个字符串使用单引号或双引号:
'Monty Python'
,"Monty Python"
。 - 字符串中的字符是使用索引来访问的,索引从零计数:
'Monty Python'[0]
给出的值是M
。字符串的长度使用len()
得到。 - 子字符串使用切片符号来访问:
'Monty Python'[1:5]
给出的值是onty
。如果省略起始索引,子字符串从字符串的开始处开始;如果省略结尾索引,切片会一直到字符串的结尾处结束。 - 字符串可以被分割成列表:
'Monty Python'.split()
给出['Monty', 'Python']
。列表可以连接成字符串:'/'.join(['Monty', 'Python'])
给出'Monty/Python'
。 - 我们可以使用
text = open('input.txt').read()
从一个文件input.txt
读取文本。可以使用text = request.urlopen(url).read().decode('utf8')
从一个url
读取文本。我们可以使用for line in open(f)
遍历一个文本文件的每一行。 - 我们可以通过打开一个用于写入的文件
output_file = open('output.txt', 'w')
来向文件写入文本,然后添加内容到文件中print("Monty Python", file=output_file)
。 - 在网上找到的文本可能包含不需要的内容(如页眉、页脚和标记),在我们做任何语言处理之前需要去除它们。
- 分词是将文本分割成基本单位或词符,例如词和标点符号等。基于空格符的分词对于许多应用程序都是不够的,因为它会捆绑标点符号和词。NLTK 提供了一个现成的分词器
nltk.word_tokenize()
。 - 词形归并是一个过程,将一个词的各种形式(如 appeared,appears)映射到这个词标准的或引用的形式,也称为词位或词元(如 appear)。
- 正则表达式是用来指定模式的一种强大而灵活的方法。一旦我们导入
re
模块,我们就可以使用re.findall()
来找到一个字符串中匹配一个模式的所有子字符串。 - 如果一个正则表达式字符串包含一个反斜杠,你应该使用带有一个
r
前缀的原始字符串:r'regexp'
,来告诉 Python 不要预处理这个字符串。 - 当某些字符前使用了反斜杠时,例如
\n
, 处理时会有特殊的含义(换行符);然而,当反斜杠用于正则表达式通配符和操作符之前时,如\.
,\|
, `\ - 一个字符串格式化表达式
template % arg_tuple
包含一个格式字符串template
,它由如%-6s
和%0.2d
这样的转换标识符符组成。