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这样的转换标识符符组成。