専門用語(キーワード)自動抽出用Perlモジュール"TermExtract"を簡単に使うためのDockerイメージを作成するDockerfileです。
-
専門用語(キーワード)自動抽出用Perlモジュール"TermExtract"
http://gensen.dl.itc.u-tokyo.ac.jp/termextract.html -
"TermExtract"のCOPYRIGHT
東京大学・中川裕志教授、横浜国立大学・森辰則助教授が 作成した「専門用語自動抽出システム」のExtract.pm を参考に、中川教授の 教示を受け、東京大学経済学部・前田朗が全面的に組みなおしたもの。(敬省略)
このDockerfileでは、以下の環境のコンテナが構築されます。
項目 | バージョン | 備考 |
---|---|---|
CentOS | 7 | ja_JP.UTF-8 |
perl | 5.16.3 | yum base |
MeCab | 0.996 | --enable-utf8-only |
MeCab IPAdic | 2.7.0-20070801 | --with-charset=utf8 |
MeCab IPAdic model | 2.7.0-20070801 | |
MeCab perl | 0.996 | |
TermExtract | 4_10 |
% git clone git@github.com:naoa/docker-termextract.git
% cd docker-termextract
% docker-compose build
% docker-compose up -d
- コンテナにターミナル接続する場合
% docker-compose exec termextract bash
bash-4.1#termextract_mecab.pl
印刷用紙を複合機で印刷する。
EOS
複合機 8.21
印刷用紙 3.00
入力を終了するにはEOSを入力します。
- 形態素解析済みテキストファイルから専門用語を抽出する場合
% cat { 形態素解析済みテキストファイル}.txt || termextract_mecab.pl --is_mecab
- 入力形式
UTF8の文字コードのテキストのみ対応しています。
引数 | 説明 | デフォルト |
---|---|---|
--input または 引数なし | 標準入力または解析対象ファイル名(コンテナ内の) | 標準入力 |
--output | 1:専門用語+重要度、2:専門用語のみ、3:カンマ区切り、4:IPAdic辞書形式(コスト推定)、5:IPAdic辞書形式(文字列長) | 1 |
--limit | 出力件数 | -1(すべて) |
--threshold | 閾値 | -1(すべて) |
--is_mecab | 入力を形態素解析済みの形式とする | |
--no_dic_filter | MeCabの辞書に登録済みの専門用語を出力する | |
--no_term_extract | 形態素解析、専門用語抽出を行わずコスト推定のみ行う | |
--stat_db | 過去のドキュメントの累積統計を使う場合のデータベースのファイル名(/var/lib/termextract/ 配下) |
"stat_db" |
--comb_db | 過去のドキュメントの累積統計を使う場合のデータベースのファイル名(/var/lib/termextract/ 配下) |
"comb_db" |
--no_stat | 重要度計算で学習機能を使わない | |
--no_storage | 学習機能用DBにデータを蓄積しない | |
--average_rate | 重要度計算で、「ドキュメント中の用語の頻度」と「連接語の重要度」のどちらに比重をおくか。値が大きいほど「ドキュメント中の用語の頻度」の比重が高まる | 1 |
--pre_filter | 形態素解析の前にプレーンテキストから除去する正規表現パターンがリストされたファイル名(/var/lib/termextract/ 配下) |
"pre_filter.txt" |
--post_filter | 複合語抽出の後に出力しない正規表現パターンがリストされたファイル名(/var/lib/termextract/ 配下) |
"post_filter.txt" |
--use_total | 重要度計算で連接語の延べ数をとる | ON |
--use_uniq | 重要度計算で連接語の異なり数をとる | |
--use_Perplexity | 重要度計算で連接語のパープレキシティをとる | |
--no_LR | 重要度計算で連接語の隣接情報を使わない | |
--use_TF | 重要度計算で連接情報に掛け合わせる用語出現頻度情報 TF | |
--use_frq | 重要度計算で、連接情報に掛け合わせる用語出現頻度情報 Frequencyによる用語頻度 | ON |
--no_frq | 重要度計算で、連接情報に掛け合わせる用語出現頻度情報 頻度情報を使わない | |
--use_SDBM | 学習機能用DBに使用するDBMをSDBM_Fileに指定する | |
--lock_dir | データベースの排他ロックのための一時ディレクトリを指定 | ロックしない |
- 出力結果
--output
に指定したモードに沿った解析結果のテキストがUTF8の文字コードで標準出力に出力されます。
4を指定するとMeCabで自動コスト推定したIPAdic形式の文字列が出力されます。
% echo "印刷用紙を複合機で印刷する。" | \
docker run -v /var/lib/termextract:/var/lib/termextract \
-a stdin -a stdout -a stderr -i naoa/termextract termextract_mecab.pl --output 4
複合機,1285,1285,7336,名詞,一般,*,*,*,*,複合機,*,*,ByTermExtractEst
印刷用紙,1285,1285,7336,名詞,一般,*,*,*,*,印刷用紙,*,*,ByTermExtractEst
5を指定すると文字列長に応じてコストが手動で設定されたIPAdic形式の文字列が出力されます。
% echo "印刷用紙を複合機で印刷する。" | \
docker run -v /var/lib/termextract:/var/lib/termextract \
-a stdin -a stdout -a stderr -i naoa/termextract termextract_mecab.pl --output 5
複合機,0,0,-14500,名詞,一般,*,*,*,*,複合機,*,*,ByTermExtractLen
印刷用紙,0,0,-16000,名詞,一般,*,*,*,*,印刷用紙,*,*,ByTermExtractLen
--no_term_extract
を指定すると形態素解析、専門用語抽出をせずにMeCabで自動コスト推定したIPAdic形式の文字列が出力されます。
% echo "印刷用紙" | docker run -v /var/lib/termextract:/var/lib/termextract \
-a stdin -a stdout -a stderr -i naoa/termextract termextract_mecab.pl --no_term_extract
印刷用紙,1285,1285,7336,名詞,一般,*,*,*,*,印刷用紙,*,*,ByMeCabEst
- 参考:MeCabのIPAdicでの解析結果
% echo "印刷用紙を複合機で印刷する。" | \
docker run -v /var/lib/termextract:/var/lib/termextract \
-a stdin -a stdout -a stderr -i naoa/termextract mecab
印刷 名詞,サ変接続,*,*,*,*,印刷,インサツ,インサツ
用紙 名詞,一般,*,*,*,*,用紙,ヨウシ,ヨーシ
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
複合 名詞,サ変接続,*,*,*,*,複合,フクゴウ,フクゴー
機 名詞,接尾,一般,*,*,*,機,キ,キ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
印刷 名詞,サ変接続,*,*,*,*,印刷,インサツ,インサツ
する 動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
。 記号,句点,*,*,*,*,。,。,。
EOS
- システム辞書への追加例
% docker run -v /var/lib/termextract:/var/lib/termextract -i -t naoa/termextract /bin/bash
% echo "印刷用紙を複合機で印刷する。" | termextract_mecab.pl --output 4 > /mecab-ipadic-2.7.0-20070801/user.csv
% cd /mecab-ipadic-2.7.0-20070801
% nkf -e --overwrite user.csv
% make clean
% ./configure --with-charset=utf8; make; make install
% echo "印刷用紙を複合機で印刷する。" | mecab
印刷用紙 名詞,一般,*,*,*,*,印刷用紙,*,*,ByTermExtractEst
を 助詞,格助詞,一般,*,*,*,を,ヲ,ヲ
複合 名詞,サ変接続,*,*,*,*,複合,フクゴウ,フクゴー
機 名詞,接尾,一般,*,*,*,機,キ,キ
で 助詞,格助詞,一般,*,*,*,で,デ,デ
印刷 名詞,サ変接続,*,*,*,*,印刷,インサツ,インサツ
する 動詞,自立,*,*,サ変・スル,基本形,する,スル,スル
。 記号,句点,*,*,*,*,。,。,。
EOS
Naoya Murakami naoya@createfield.com
Public domain. You can copy and modify this project freely.