先週は形態素解析なアプローチじゃなくて、特長語抽出のような感じで専門用語が取り出せないかなーとやっていた。
www.yasuhisay.info
が、YamChaの使い方がよく分からない&使うツールの中身が今の自分にとってはブラックボックスすぎる、ということで形態素解析ベースでどうにかしようということにしました。
今だと「蛋白質」が「蛋白」と「質」に分解されてしまうような感じで、(MeCab|Chasen)によく形態素解析だと細かく区切られすぎています(一般語に対してはいいのかもだけど、専門的なのだと組み合わせたやつで単語になっていて欲しかったりする)。が、細かい分にはつなげなおしてあげればいいじゃん、ということで繋げることにしました。専門用語だと名詞+名詞な繋がりが多いかなーということで、名詞のsequenceを抽出するようにしました。「私」とかMeCabにそのままあるようなやつはfilterして除外しています。ということでやるためのスクリプト。ディレクトリ配下にある500個くらいのテキストに対して処理をしています。
library(RMeCab) setwd("~/Desktop") install.packages("RMeCab_0.79.tgz",destdir=".",repos=NULL) library(RMeCab) joined_words <- function(file,exclusive_list = c(".",",","(",")",":","^",").")){ meisi <- c() word_sequence <- "" previous_word <- "" previous_part_of_speech <- "" # 前の品詞 for(x in RMeCabText(file)){ if(is.null(x)) next # NULLが入っていることがある if(x[2] == "名詞" && !any(exclusive_list == x[1])){ if(previous_part_of_speech == "名詞"){ # 名詞のsequenceになっている場合 previous_word <- paste(previous_word,x[1],sep="") } }else{ if(previous_word != ""){ meisi <- c(meisi, previous_word) # 今の単語の品詞が名詞じゃなかったら前の名詞のやつを突っ込む } previous_word <- "" } previous_part_of_speech <- x[2] } return(meisi) } meisi <- c() path <- "/Users/syou6162/dbcls/pne/2006/" for(file in list.files(path)){ print(paste(path,file,sep="")) meisi <- c(meisi,joined_words(paste(path,file,sep=""))) }
で、結果の名詞のsequenceで登場回数の多いのを出してみた結果がこれ。
> tail(sort(result),n=100) H3 質複合体 小胞体 組換え 27 27 27 27 電子顕微鏡 膜孔 膜孔複合体 -codingRNA 27 27 27 28 構造解析 軸索 生殖細胞 体分配 28 28 28 28 制御機構 生命現象 内局在 膜蛋白質 29 29 29 29 クロマチン構造 癌細胞 状突起 食胞 30 30 30 30 線虫 M期 図1a 前駆細胞 30 31 31 31 動物細胞 特異性 p53 外マトリックス 31 31 32 32 減数分裂 次構造 ツーハイブリッド法 遺伝学 32 32 33 33 後修飾 蛋白質合成系 Cdc42 E2 33 33 34 34 年前 量体 生体内 変性疾患 34 34 35 35 メチル化 化酵素 根粒菌 相互作用 36 36 36 36 遺伝子発現 末端側 IIユビキチン系 Sリボソーム 37 37 38 38 一般的 的役割 生命科学 細胞分裂 38 38 39 40 変異体 -プロテアソーム系 リン酸化 転写因子 40 41 41 41 最終的 表1 ユビキチン化 分裂酵母 44 44 46 46 質合成 -2 質分解 神経細胞 47 48 48 48 活性化 ES細胞 核膜 ヒストン 49 50 50 51 図4 番目 依存的 細胞核 51 51 52 53 細胞膜 -1 Sプロテアソーム 図3 53 54 57 58 アクチン 特異的 研究室 結合蛋白質 59 62 63 64 E3 質核酸酵素 細胞周期 生物学 65 65 70 81 微小管 研究者 細胞質 受容体 81 91 98 99 幹細胞 核内 出芽酵母 図2 105 106 109 112 オートファジー 染色体 複合体 残基 134 134 153 163 細胞内 図1 筆者ら 蛋白質 193 205 308 847
割と生物系っぽい単語が抽出できてはいるんだけど、多少のゴミは混ざっている。あと「(数字)-hogehoge」みたいなやつの数字が落ちてしまったりしている(なんでだ。。。)ので、その辺をどうにかしないと。
pne20年分のテキストだとこんな感じになった。思ったよりは時間かからないなー。もうちょいテキスト食わせてもいいかもしれないと思ったけど、あんまり変わらないかも。
> tail(sort(result),n=100) 間相互作用 制御機構 産生 培養細胞 http://www 依存性 271 273 277 279 280 281 細胞分裂 B細胞 小胞 哺乳動物 TGF- 伝達経路 281 283 286 286 290 290 癌細胞 研究テーマ 遺伝子産物 変異体 細胞死 -3 291 291 292 293 294 297 依存的 小胞体 細胞外 組換え 本鎖DNA 質合成 297 298 299 299 300 301 p53 転移酵素 的解析 結合部位 伝達物質 結合ドメイン 304 305 307 308 310 312 分裂酵母 分子量 アミノ酸配列 動物細胞 膜上 リンパ球 312 317 327 331 334 337 核内 膜蛋白質 電気泳動 的研究 葉緑体 相互作用 338 342 344 355 355 356 図5 年前 機序 カ所 研究室 リン酸化 358 358 367 368 368 375 一般的 体上 遺伝子発現 2量体 遺伝学 塩基配列 376 376 378 388 389 391 線虫 的役割 基本的 構造解析 _2 緑体 391 401 417 444 447 452 芽細胞 サブユニット 生体内 細胞質 細胞膜 転写因子 470 472 479 487 488 503 化合物 出芽酵母 図4 結合蛋白質 最終的 糖鎖 515 524 526 541 546 546 細胞周期 T細胞 表1 伝達系 末端側 番目 553 563 565 571 572 583 神経系 量体 神経細胞 幹細胞 図3 -2 622 632 647 660 689 741 特異性 次構造 特異的 活性化 生物学 複合体 771 784 793 809 861 877 図2 研究者 -1 図1 細胞内 染色体 911 951 1462 1503 1590 1611 受容体 残基 筆者ら 蛋白質 1680 1780 3951 10424
既存の研究
なんか探していたら同じようなアプローチのやつが東大のところでやられているらしい。Perlのモジュールとしてすでにあるっぽいけど、とりあえず自分で作ってやってみることにしようーっと。
- 専門用語(キーワード)自動抽出用Perlモジュール "TermExtract"の解説
- http://homepage3.nifty.com/DO/gaiyo2.pdf
- これは岡野原さんが未踏でやられていたもののようです
- 出現頻度と連接頻度に基づく専門用語抽出