python - SUMY Text Summarizer 无法汇总并返回原始文本
问题描述
LANGUAGE = "english"
stemmer = Stemmer(LANGUAGE)
def get_luhn_summary(text):
summ = list()
parser = PlaintextParser.from_string(text, Tokenizer(LANGUAGE))
summarizer = LuhnSummarizer()
summarizer.stop_words = get_stop_words(LANGUAGE)
for sentence in summarizer(parser.document,10):
summ.append(str(sentence))
return summ
summaryA_luhn = get_luhn_summary(textA)
始终返回原始字符串。我很困惑,因为我正在关注文档
解决方案
总结是通过句子计数来完成的。
import nltk
from sumy.parsers.plaintext import PlaintextParser
from sumy.nlp.tokenizers import Tokenizer
from sumy.summarizers.luhn import LuhnSummarizer as Summarizer
from sumy.nlp.stemmers import Stemmer
from sumy.utils import get_stop_words
LANGUAGE = "english"
SENTENCES_COUNT = 2
nltk.download('punkt')
parser = PlaintextParser.from_file("document.txt", Tokenizer(LANGUAGE))
stemmer = Stemmer(LANGUAGE)
summarizer = Summarizer(stemmer)
summarizer.stop_words = get_stop_words(LANGUAGE)
for sentence in summarizer(parser.document, SENTENCES_COUNT):
print(sentence)
以下将从文件名 document.txt 中读取句子,并根据 SENTENCES_COUNT 将根据您指定的句子数进行汇总。
因此,如果 document.txt 有 10 个句子,并且您设置 SENTENCES_COUNT = 2,您将得到两个句子的摘要。
您也可以简单地换出:
parser = PlaintextParser.from_file("document.txt", Tokenizer(LANGUAGE))
和:
text = "This is the string to parse. Hopefully it will be more than one sentence. Like so!"
parser = PlaintextParser.from_string(text, Tokenizer(LANGUAGE))
如果您要从字符串而不是文件中解析什么。
推荐阅读
- vue.js - Vuetify:尽管 v-model 变量设置为 false,但 v-dialog 不会关闭
- c++ - 错误 LNK2005 DllMain 已在 uafxcw.lib(dllmodul.obj) 中定义
- javascript - 如何在 javascript 中为 ("1:2,2.2,3:4,4.1,5") 制作正则表达式?
- asp.net - 如何在 ASP.NET Core 的不同位置使用视图组件的视图?
- java - java.lang.NullPointerException:需要位置。javafx
- python - 当函数被用作其他函数的参数时,我如何绕过被调用的函数
- c# - 将更多 csv 文件添加到 winforms 中的 datagridview
- swift - 禁止用户在 tableView 中向上滚动?
- next.js - 具有本地护照身份验证的 nextjs 服务器响应错误
- r - 将国家形状文件彼此相邻绘制以保持比例