📜  使用 NLP 处理文本 |基本(1)

📅  最后修改于: 2023-12-03 15:22:14.658000             🧑  作者: Mango

使用 NLP 处理文本 | 基本

Natural Language Processing (NLP) 是一种计算机科学技术,旨在使 computer 能够理解和分析人类产生的语言。在文本处理中,NLP 是一个非常强大的工具,能够自动分析语言,提取关键信息以及处理基本文本任务,例如词汇分析、语法分析、文本生成等等。

NLP 基本任务
分词

分词是将连续的文本序列切分成单独的单词序列的过程。分词是目前许多 NLP 应用程序的基础。通常,我们使用空格将句子中的单词分开。NLP 中的分词算法还采用了诸如 WordPiece、BPE 等算法,这些算法使用语言模型来生成更好的单词分割结果。

import nltk

nltk.download('punkt')
from nltk.tokenize import word_tokenize

text = "This is a sentence."
words = word_tokenize(text)
print(words)
# output: ['This', 'is', 'a', 'sentence', '.']
词性标注

词性标注 (part-of-speech tagging)是指为每个单词标注一个指示其语法和含义的词性 (part-of-speech) 标签的过程。这对于文本处理和信息提取很有用。

import nltk

nltk.download('averaged_perceptron_tagger')
from nltk import pos_tag

text = "This is a sentence."
words = word_tokenize(text)
pos = pos_tag(words)
print(pos)
# output: [('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('sentence', 'NN'), ('.', '.')]
命名实体识别

命名实体识别 (named entity recognition) 是一种自然语言处理技术,用于识别在文本中提到的命名实体,如人、地点、机构、时间等。模型使用语言模型挑选出最有可能是命名实体的单词或短语进行标记。

import nltk

nltk.download('maxent_ne_chunker')
nltk.download('words')
from nltk import ne_chunk

text = "John works at Google in New York City and he visited the Eiffel Tower in Paris."
words = word_tokenize(text)
pos = pos_tag(words)
chunks = ne_chunk(pos)
print(chunks)
词汇与语法分析

词汇和语法分析对于了解文本语义非常重要。我们可以将句子分解成文法层次结构或树形结构,这样便可以更深入地了解句子的语义。

import nltk

nltk.download('punkt')
nltk.download('averaged_perceptron_tagger')
nltk.download('maxent_ne_chunker')
nltk.download('words')
from nltk import Tree
from nltk.chunk import *
from nltk.chunk.util import *

text = "John works at Google in New York City and he visited the Eiffel Tower in Paris."
words = word_tokenize(text)
pos = pos_tag(words)
chunk_tree = Tree.fromstring(str(chunks))
grammar = r'NP: {<DT>?<JJ>*<NN>}'
parser = RegexpParser(grammar)
res = parser.parse(pos)
for subtree in res.subtrees(filter=lambda t: t.label() == 'NP'):
    print(subtree)
结论

本文涵盖了 NLP 基本任务的示例代码,通过 NLP 工具可以解决文本处理的许多基本问题。这对于文本处理和信息提取非常有用。如果您对此感兴趣,可继续探索其他 NLP 技术和应用的工具和库。