多语言摘要生成器,旨在提高文本可读性

multilang-summarizer的Python项目详细描述


多语言摘要生成器

该软件包实现了一个在线多文档摘要算法,旨在提高文本的可读性。它支持以下语言:

  • “de”:“德语”
  • 'en':'english'
  • “是”:“西班牙语”
  • 'fr':'french'
  • “hu”:“匈牙利语”
  • “It”:“意大利语”
  • “pt”:“葡萄牙语”
  • “ro”:“罗马尼亚语”
  • “sv”:“瑞典语”

这项工作得到了墨西哥国家科学技术委员会(康纳克特)的部分支持,作为C.C.TeDras CONACYTT项目的一部分^ {EM1}$NeaseStula PARAGIZARAR EL DeSARLLO DE SistaMas Entuuro EUURIOO < EEM >,参考文献3053。

先决条件

此项目具有以下依赖项:

  • 扑热息痛
  • 文本状态
  • 分句器
  • 努比
  • nltk(需要下载标记化语料库)

安装

该软件包通过pip:

pip install multilang-summarizer

使用

摘要生成器函数直接实现算法。

from multilang_summarizer.summarizer import summarizer

# summarizer(D_path, f_method, seq_method, lemmatizer, session_id=1)

它接收到单个文档的路径、三个不同句子关联函数的选择(f_方法)、相关术语选择方法(seq_方法)、引理器和会话号(用于存储目的)。

F_方法的选择可以是以下三种方法之一:

  • “f1”:使用平均术语似然作为相关性的指标。
  • “F2”:使用过去的用语和音节熵分别测量相关性和句子复杂度。
  • “f3”:使用基于加权tfidf的方法来度量相关性。

seq_方法的选择可以是以下三种方法之一:

  • “partial”:使用最后生成的摘要和新输入之间的简单匹配来标识相关术语。
  • “概率”:使用过去的术语likelihood来识别相关术语。
  • “lcs”:使用最长的公共子序列算法来识别最后生成的摘要和新输入之间的相关术语。

lemmatizer对象包含所选语言的元素化规则。对于英语,它可以引用如下:

from multilang_summarizer.lemmatizer import Lemmatizer


lemmatizer = Lemmatizer.for_language("en")

最后,session_id告诉运行摘要输入d将添加到的算法。可以同时打开不同的会话。要清除所有会话的缓存,请使用以下方法:

from multilang_summarizer.summarizer import clean_working_memory

clean_working_memory()

最后,summanger返回一个document对象,该对象包含从命名会话中所有以前的文档中选择的所有句子,以及选择每个句子所用的f分数。

运行测试

回购协议中提供了两个示例脚本:

  • 测试/测试英语.py
  • 测试/西班牙语测试.py

要运行它们,需要test_documents文件夹中的文档。简单地说,执行

python tests/test_english.py

安装后从根文件夹。

示例结果

以下摘要是使用f_method='f3'和seq_method='lcs'在test_documents文件夹中的10个新闻项上获得的。

For the second day in a row, astronauts boarded space shuttle Endeavour 
on Friday for liftoff on NASA's first space station construction flight.
The decision, which followed ``frank and 
candid'' discussions between the two partners, was not imposed by 
the United States, he said.
The main cargo Thursday was the Unity module, the first U.S.-built 
station part.
The shuttle contains 
the second station component.
The mechanical arm has never before moved anything so big.
The bigger worry, by far, was over Endeavour's pursuit and capture 
of Zarya, and its coupling with Unity.

在西班牙语中,使用f_method='f1'和seq_method='lcs'对test_documents文件夹中的12个西班牙语新闻项获取以下摘要。

Tras una intensa búsqueda llevada a cabo por rescatistas, los 12 niños y su profesor fueron encontrados con vida y en buen estado de salud.
El rescate de los 12 niños y su entrenador que quedaron atrapados en una cueva inundada, en el norte de Tailandia, podría tomar semanas o incluso meses.
Pero aunque los 13 pudieran bucear, algunas partes de la cueva son demasiado estrechas,lo que exige mucho entrenamiento para poder pasar con tanques de buceo.
Los niños fueron encontrados, 200 metros más adelante.
Están cansados y necesitan un tiempo para reponerse.
La primera etapa del rescate es hacerles recuperar fuerzas.
Los 13 miembros están bien.

作者

许可证

此项目是在gplv3许可下授权的-有关详细信息,请参见LICENSE文件

致谢

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java为什么@DELETE REST不起作用?   带有JPA2的java表值参数。1和Hibernate,Sql Server   如何将Java类添加到Xamarin VS2017项目   绘制多边形时出现java空指针异常   java Apache WebClient 303状态未重定向   java如何用一组字符串数组从数据库中获取数据   java是否可以使用Google Drive API向文件中添加脚本?   java组织。阿帕奇。贾斯珀。JspC jar文件下载   java在整个JSON映射中将单个值作为JSON流   通过命令行将文件输入到java   java rs.next()总是返回false   java标记异常,通知调用方利用异常消息   java Spring YML数组属性为空