文章からキーワードを抽出するスクリプトをPythonモジュールとして実装しました。
分かち書きした上に、適切に複合語をつくり、さらに重要そうなものかどうかのスコアをつけます。
アルゴリズムは、以下のサイトを参考にしました。
http://gensen.dl.itc.u-tokyo.ac.jp/
ここで紹介されている論文
* 中川裕志、森辰則、湯本紘彰: "出現頻度と連接頻度に基づく専門用語抽出",自然言語処理、Vol.10 No.1, pp. 27 - 45, 2003年1月
http://www.r.dl.itc.u-tokyo.ac.jp/~nakagawa/academic-res/jnlp10-1.pdf
に掲載されているFLR法のみを実装しています。
$ ./mword.py < sample.txt | sort -t " " -k2,2nr | less -isr 配置 17.000000 重要 性 11.313708 最終 的 6.727171 右 5.656854 重要 5.656854 製品 5.656854 X 軸 5.334838 Y 軸 5.334838 相対 的 5.045378 マス 5.000000 仕事 5.000000 比較 5.000000 コスト 4.242641 意志 決定 4.242641 開発 4.242641 左上 4.000000 労力 4.000000 横 軸 3.556559 縦 軸 3.556559 優先 3.464102 戦略 的 3.363586 簡単 3.000000 基準 3.000000 機能 3.000000 左下 3.000000 さ 2.828427 右 下 2.828427 製品 開発 2.828427 プロジェクト 2.000000 リスク 2.000000 逆 2.000000 残り 2.000000 順番 2.000000 処理 2.000000 側 2.000000 値 2.000000 度合い 2.000000 判明 2.000000
#!/usr/bin/python
# _*_ coding: euc_jp _*_
# Copyright (C) 2007 Ayukawa Hiroshi
import mword
body = """
中国の国会にあたる全国人民代表大会(全人代)の常務委員会は29日、雇用契約の長期化を促すなど、労働者の権利保護を強化した労働契約法案を可決した。08年1月から施行する。
中国では、山西省で明らかになった未成年者の強制労働など、正規の契約を結ばない雇用が横行し、労働者の保護が急務とされてきた。ただ、安い賃金を競争力としてきた企業には、負担となりそうだ。
法案によると、働き始めてから1カ月を過ぎても書面契約を結ばない雇用主は、月給の2倍の割増賃金を支払わなければならない。また、同じ企業で勤続10年を超えたり、期限付き契約を2度更新したりした場合、労働者が希望すれば、基本的に無期限の雇用契約を結ぶことも義務づけた。派遣社員であっても、正社員と同じ仕事をした場合は、同じ賃金の支払いを受け取る権利がある、とした。また、労働者の権利に影響する社則の変更は、組合と協議するよう求めている。
中国では労働契約を結んでも1年更新の企業が多いため、「安定に欠け、労働者の権益に深刻な影響を与えている」(全人代広報担当)として、雇用主に契約の長期化や退職時の補償金の支給を促す。
"""
score = mword.calc(body.split("\n"))
words = score.keys()
words.sort(key=lambda x: score[x], reverse=True)
for word in words:
print " ".join(word) + "\t%f" % score[word]
ayu@~/work/mword% python sample.py | head -n 20 労働 者 10.298836 契約 6.324555 雇用 契約 4.680695 雇用 主 3.130169 企業 3.000000 中国 3.000000 賃金 2.828427 権利 2.828427 長期 化 2.828427 労働 契約 2.783158 労働 契約 法案 2.220906 書面 契約 2.114743 期限 付き 契約 2.075782 更新 2.000000 影響 2.000000 強制 労働 1.861210 雇用 1.732051 全国 人民 代表 大会 1.681793 全人代 広報 担当 1.587401 常務 委員 会 1.587401