![見出し画像](https://assets.st-note.com/production/uploads/images/93925509/rectangle_large_type_2_72f1a5135503a0eec103348d3dd4e5ed.jpeg?width=1200)
【Python】CSVを読み込んでhのカラムで絞って、content列ごとにマージして要約する【Colaboratory】
Google Drive
from google.colab import drive
drive.mount('/content/drive/')
%cd "/content/drive/My Drive/googleseo/data"
テキスト読み込み
import pandas as pd
df = pd.read_csv("marge.txt")
h列のユニークなリストを作っておいて、あとでループ処理する
# h列のユニークなリストを作っておいて、あとでループ処理する。
h_list = pd.unique(df['h'])
ループ(のテスト用でbreakも入っている)
for h_word in h_list:
print(df.query('@h_word == h'))
df_x = df.query('@h_word == h')
df_xx = df_x['content'].tolist()
content = "".join((map(str,df_xx)))
#break
要約に必要なライブラリを入れる
!pip install pysummarization
!pip install mecab-python3 unidic-lite
mecabの動作確認も兼ねて読み込み
from pysummarization.nlpbase.auto_abstractor import AutoAbstractor
from pysummarization.tokenizabledoc.mecab_tokenizer import MeCabTokenizer
from pysummarization.abstractabledoc.top_n_rank_abstractor import TopNRankAbstractor
from pysummarization.nlp_base import NlpBase
from pysummarization.similarityfilter.tfidf_cosine import TfIdfCosine
import MeCab
print(MeCab.Tagger().parse("TESTです。"))
ループの処理と適当にマージする
similarity_filter.similarity_limitの数値は類似性の判定。
for h_word in h_list:
print(df.query('@h_word == h'))
df_x = df.query('@h_word == h')
df_xx = df_x['content'].tolist()
content = "".join((map(str,df_xx)))
yoyaku_list = []
# NLPのオブジェクト
nlp_base = NlpBase()
nlp_base.tokenizable_doc = MeCabTokenizer()
similarity_filter = TfIdfCosine()
similarity_filter.nlp_base = nlp_base
similarity_filter.similarity_limit = 0.6
#document = '\n'.join(y.txt)
auto_abstractor = AutoAbstractor()
auto_abstractor.tokenizable_doc = MeCabTokenizer()
auto_abstractor.delimiter_list = [".", "\n"]
abstractable_doc = TopNRankAbstractor()
result_dict = auto_abstractor.summarize(content, abstractable_doc,similarity_filter)
# 変数を渡し文書を要約
result_dict = auto_abstractor.summarize(content, abstractable_doc)
# 出力
for sentence in result_dict["summarize_result"]:
#print(sentence)
yoyaku_list.append(sentence)
for sentence in result_dict["scoring_data"]:
pass
#print(sentence)
#break
いいなと思ったら応援しよう!
![ムジン #サイト改善コンサル #SEO対策 #マーケティング戦略](https://assets.st-note.com/production/uploads/images/72204260/profile_523cf9118a40d52a5b35595afde65377.png?width=600&crop=1:1,smart)