python代码,基于 TextRank 算法的文本摘要
时间: 2023-01-31 08:01:22 浏览: 135
TextRank 算法是一种用于文本摘要的有效方法。它通过构建文本中词语之间的关系图,并在图中运用 PageRank 算法来计算每个词语的重要性,从而找出文本中最重要的句子。
下面是一个使用 TextRank 算法实现文本摘要的示例代码:
```python
import nltk
import re
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize
from sklearn.feature_extraction.text import TfidfVectorizer
def summarize(text, n):
# 去除文本中的标点符号
text = re.sub('[^a-zA-Z]', ' ', text)
# 转换为小写
text = text.lower()
# 分词
words = word_tokenize(text)
# 去除停用词
words = [word for word in words if word not in stopwords.words('english')]
# 构建词语之间的关系图
word_graph = nx.Graph()
# 添加节点
word_graph.add_nodes_from(words)
# 添加边
for i in range(len(words) - 1):
word_graph.add_edge(words[i], words[i + 1])
# 计算每个节点的 PageRank 值
scores = nx.pagerank(word_graph)
# 按照 PageRank 值排序
ranked_sentences = sorted(((scores[i], s) for i, s in enumerate(sentences)), reverse=True)
# 返回最重要的 n 个句子
return [ranked_sentences[i][1] for i in range(n)]
```
在这个代码中,我们首先对文本进行分词,并去除停用词,然后构建词语之间的关系图,并计算每个节点的 PageRank 值。最后,我们按照 PageRank 值将句子
阅读全文