J'ai essayé summpy, un outil de synthèse de texte publié par Recruit Technologies.
summpy https://github.com/recruit-tech/summpy
L'environnement est Ubuntu 16.4. Nécessite Python 2.7 pour fonctionner. Comme il n'est pas inclus par défaut, nous préparerons un environnement de 2.7 avec anaconda.
$ conda create -n 2.7 python=2.7 anaconda
Vérifiez s'il a été correctement installé
$ source activate 2.7
(2.7)$
(2.7)$ conda info -e
# conda environments:
#
base /home/croso/anaconda3
2.7 * /home/croso/anaconda3/envs/2.7
3.5 /home/croso/anaconda3/envs/3.5
3.6 /home/croso/anaconda3/envs/3.6
Installez Mecab-python car MeCab ou janome est requis pour l'analyse morphologique
(2.7)$ pip install mecab-python
Ensuite, installez summpy avec pip
(2.7)$ pip install summpy
Créer un exemple de script
# -*- coding: utf-8 -*-
from summpy.lexrank import summarize
text=u'''
Le taux de chômage (désaisonnalisé) en septembre annoncé par le ministère de l'Intérieur et des Communications le 1er était de 2,4%, 0,2 point de moins que le mois précédent.
Selon une enquête Reuters, 2,3% étaient attendus.
Le taux de chômage est inférieur à 2,5% depuis janvier 2018.
Le ministère de l'Intérieur et des Communications a résumé: «Bien que le taux de chômage ait augmenté, le niveau est resté au niveau le plus bas depuis environ 26 ans, et la situation de l'emploi s'améliore constamment», a déclaré un cadre.
Le nombre d'employés (désaisonnalisé) était de 67,3 millions, soit une baisse de 50 000 par rapport au mois précédent.
Le nombre de chômeurs (comme ci-dessus) était de 1,67 million, soit une augmentation de 130 000 par rapport au mois précédent.
Le nombre de chômeurs a augmenté pour la première fois en 6 mois.
En regardant la ventilation, le nombre de rotations involontaires était le même que le mois précédent, mais le nombre de rotations volontaires (auto-convenance) a augmenté de 10 000 et le nombre de nouveaux demandeurs d'emploi a augmenté de 90 000. «Le nombre de personnes qui souhaitent travailler à nouveau augmente», a-t-il déclaré.
Selon les chiffres originaux, le nombre d'employés a augmenté de 530 000 par rapport au même mois de l'année précédente à 67,68 millions.
Il a augmenté pendant 81 mois consécutifs, le plus haut jamais enregistré depuis 1953, ce qui est comparable.
Le taux d'emploi des 15-64 ans est de 77,9%, le plus élevé jamais enregistré en Thaïlande.
Le taux de recrutement effectif (désaisonnalisé) pour septembre annoncé par le ministère de la Santé, du Travail et du Bien-être social était de 1,57 fois, en baisse par rapport au mois précédent.
Selon une enquête de Reuters, il devrait être 1,59 fois.
'''
sentences, debug_info = summarize(
text, sent_limit=2
)
for sent in sentences:
print sent.strip().encode('utf-8')
Analysons un article extrait d'un site d'actualités.
sent_limit Combien de lignes mettez-vous les résultats ensemble? Cela ressemble à
.
Jusqu'à présent, c'est un formulaire qui trace README.md de summpy tel quel.
Une erreur s'est produite lors de son utilisation.
"error": "add_edge() takes exactly 3 arguments (4 given)"
Quand je l'ai recherché, c'était une incompatibilité de version avec networkx. https://teratail.com/questions/114565 Je vais correspondre à la version.
(2.7)$ pip install multiqc==1.2
(2.7)$ pip install networkx==1.11
ʻInstallez d'abord multiqc`. Si vous installez multiqc, networkx installera également 2.2 automatiquement, vous ne pourrez donc pas reproduire correctement l'environnement à moins que vous n'écrasiez 1.11 de networkx dessus.
La phrase complète est ci-dessous
Le nombre d'employés (désaisonnalisé) était de 67,3 millions, soit une baisse de 50 000 par rapport au mois précédent.
Le nombre de chômeurs (comme ci-dessus) était de 1,67 million, soit une augmentation de 130 000 par rapport au mois précédent.
Comment est-ce? On peut lire dans le résumé que l'économie japonaise s'est refroidie parce que le nombre d'employés a diminué et que le nombre de chômeurs a augmenté. Cependant, j'estime avoir négligé la phrase dont on peut dire qu'elle faisait l'objet de «0,2 point de moins que le mois précédent».
J'ai également mal compris, mais il semble qu'il ne "résume pas le texte". Il semble correct de dire «un outil qui extrait uniquement les lignes importantes d'une phrase».
Au fait, je pense que peu de gens installent mecab et l'utilisent tel quel. Cela ne sert à rien sauf si vous ajoutez un dictionnaire. Alors, installez ce qui suit.
https://github.com/neologd/mecab-ipadic-neologd
C'est un dictionnaire mecab qui prend en charge les derniers mots. Les informations du dictionnaire doivent être incluses ci-dessous après l'installation.
(2.7)$ ls /usr/local/lib/mecab/dic/mecab-ipadic-neologd
char.bin dicrc left-id.def matrix.bin pos-id.def rewrite.def right-id.def sys.dic unk.dic
J'aimerais que le dictionnaire soit lu automatiquement, mais summpy n'avait pas une telle fonction, j'ai donc réécrit une partie de la source pour la gérer. (Il serait peut-être plus correct de modifier mecab-python ...)
(2.7)$ vi ~/anaconda3/envs/2.7/lib/python2.7/site-packages/summpy/misc/mecab_segmenter.py
8ème ligne
_mecab = MeCab.Tagger()
À
_mecab = MeCab.Tagger('-d /usr/local/lib/mecab/dic/mecab-ipadic-neologd')
Remplacé par. Cela devrait être un peu plus précis ...
Ce n'est pas pertinent, mais l'apprentissage automatique nécessite une énorme quantité de données d'entraînement. Parmi eux, je pensais que la synthèse de phrases était une tâche relativement facile pour collecter des données d'apprentissage. Si vous utilisez le titre de l'article pour les bonnes réponses et le corps de l'article pour les données d'apprentissage de nombreux sites d'actualités, vous pouvez trouver autant d'échantillons que vous le souhaitez sur le net, j'ai donc pensé que cela pourrait être un bon sujet d'étude.
Recommended Posts