ドキュメントを読んでもどうすればいいのか全然わからないので、いろいろなサイトを参考にしてみたのですが、次のサイトが様々なバージョンのコードが書かれており、とても参考になりました。
Python pdfminer.converter.TextConverter() Examples
importする関数は本当にどこから見つけてきたのか、下記の通りです。
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import TextConverter from pdfminer.layout import LAParams from pdfminer.pdfpage import PDFPage from io import StringIO
PDFのDeviceを作成。何に使うのかは不明です。と書きましたが、どうやらDeviceにはTextConverterという関数を代入するらしい。
それで、そのまま実行しますと、下記のようなエラーがでます。
device = TextConverter()
TypeError: __init__() missing 2 required positional arguments: 'rsrcmgr' and 'outfp'
rsrcmgrとoutfpを引数に指定しろというエラーですので、その2つを用意します。
rsrcmgr = PDFResourceManager() outfp = StringIO()
interpreterなんかもそのまま実行すると、引数の指定がでてきます。
interpreter = PDFPageInterpreter()
TypeError: __init__() missing 2 required positional arguments: 'rsrcmgr' and 'device'
こちら指定された2つを引数として渡します。
interpreter = PDFPageInterpreter(rsrcmgr, device)
それで完成したコードがこちらです。
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter from pdfminer.converter import TextConverter from pdfminer.layout import LAParams from pdfminer.pdfpage import PDFPage from io import StringIO rsrcmgr = PDFResourceManager() outfp = StringIO() device = TextConverter(rsrcmgr, outfp, codec='utf-8', laparams=laparams) pdf = open('pdf/p1_5.pdf', 'rb') interpreter = PDFPageInterpreter(rsrcmgr, device) for page in PDFPage.get_pages(pdf): interpreter.process_page(page) list =[outfp.getvalue()] pdf.close() device.close() outfp.close() print(list)
実行結果。
言語処理学会 第 19 回年次大会 発表論文集 (2013 年 3 月) 女性グループの歌詞の計量テキスト分析  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 小林佳織 狩野恵里奈 鈴木崇史 東洋大学社会学部 東洋大学社会学部 東洋大学社会学部 性グループの曲は,現在の日本全体の楽曲売り上げにおいて大きな部分を占め, 2011 年度のオリコン年間トップ 50 においては 17 曲がランクインする結果となっ ている.また,流行歌の歌詞を理解することはその時代のポピュ ラーカルチャー を社会学的に理解するために重要な意義をも つ.そこで本研究では,過去 35 年間 のオリコン年鑑のデータをもとに女性グループ 34 組 439 曲を対象とし研究を行っ た. 歌詞のテキストファイルを作成し,形態素の頻度を計量,主成分分析とランダムフォ レスト機械学習法を適用した.その結果,ヒット歌手,各年代に それぞれ違いがある ことを明らかに した.本研究は女性グループを対象とし,歌手や年代の違いを知るた めの歌詞の重要性を考える. (以下、省略)
とりあえず、文字列型にできましたので、あとは改行( \n)などで区切ってあげればリストができそうです。
list = string.split("\n") list
[' ', '', ' ', '', '言語処理学会 第 19 回年次大会 発表論文集 (2013 年 3 月) ', '', '女性グループの歌詞の計量テキスト分析 ',
いろいろなマイニングに使えそうですね。
今日の結果
今日のAKBの呟きは31件でした。いつも通りに戻りましたね。
'可愛い': 6, '楽しい': 3, '良い': 3, '暑い': 2, 'すごい': 2, '嬉しい': 1, '優しい': 1, '新しい': 1, '恥ずかしい': 1, 'ない': 1}) 'ちゃん': 10, '可愛い': 6, 'さん': 6, '公演': 6, 'こと': 5, '今日': 5, 'アクシュカイ': 5, '日': 5, 'する': 13, 'ちゃん': 10, '頑張る': 7, '可愛い': 6, 'さん': 6, '公演': 6, 'なる': 6, 'こと': 5, '今日': 5, 'アクシュカイ': 5, '日': 5,