分块是指将输入文本划分成片段, 它们基于任意随机条件. 这不同于在没有约束的意义上的标记化, 并且块根本不需要有意义. 这在文本分析过程中非常频繁地使用. 当您处理真正的大文本文档时, 您需要将其分成多个块进行进一步分析. 在这个食谱中, 我们将把输入文本分成多个部分, 每个部分有一个固定数量的单词.

怎么做...?

  • 创建文件并导入需要的包:
from nltk.corpus import brown
  • 我们定义一个函数来将文本分割成块. 第一步是根据空格划分文本:
def splitter(data, num_words):
    words = data.split(' ')
    output = []

    cur_count = 0
    cur_words = []
    for word in words:
        cur_words.append(word)
        cur_count += 1
        if cur_count == num_words:
            output.append(' '.join(cur_words))
            cur_words = []
            cur_count = 0

    output.append(' '.join(cur_words))

    return output
  • 我们现在可以定义主要主函数. 加载来自Brown语料库的数据. 我们将使用前10,000个单词:
if __name__ == '__main__':
    # Read the data from the Brown corpus
    data = ' '.join(brown.words()[:10000])

    # Number of words in each chunk
    num_words = 1700

    chunks = []
    counter = 0

    text_chunks = splitter(data, num_words)

    print ("Number of text chunks =", len(text_chunks))
  • 运行这段代码后, 会在命令行输出结果: 6

results matching ""

    No results matching ""