2022 年 21 巻 1 号 p. 1-9
化学知識を有効活用するには,化学物質名とその構造,機能,製造方法,化学反応,用途などを効率よく抽出,整理,蓄積することが必要であるが,それには多大な時間と労力を伴う.英文からの化学物質名抽出については多くの研究が行われ,一定の成果が得られている.一方日本語文の場合,英文のように単語が空白や記号によって区切られていないため,化学物質名を単語として扱うには,最初に形態素解析を行って単語に区切り,細かく分離された単語をひとかたまりの単語として連結する必要がある.しかしながら,連結により,不要な部分が化学物質名についてしまう場合もある.本論文では,特許公開公報に化学物質名をタグ付けしたコーパスを作り,化学物質名の文字種,配置,前後の関係,文脈などに着目した単語切り出しとWord2Vecによるベクトル化を行い,コーパスを学習データとした機械学習モデルによる日本語文からの化学物質名抽出の可能性について検討する.
To effectively utilize the knowledge on chemicals, it is necessary to efficiently extract, organize, and collate the names of core chemical substances and their respective structures, functions, manufacturing methods, chemical reactions, and uses. This activity, indeed, takes time and effort. While extracting the names of these substances from Japanese sentences, it is important to remember that unlike English, Japanese words are not separated by spaces or symbols. Therefore, firstly, one needs to perform a morphological analysis of the chemical names, divide them into distinct words, and group them accordingly. When an additional word comes to be attached to the name of a chemical substance owing to the bonding of unnecessary words, it needs to be removed. In this study, we focus on the character type, arrangement, and context of the names of these chemicals in Japanese sentences. We created a corpus tagged with the chemical names extracted from patent publications and used it as training data material for a machine learning model. Further, we examined the possibility of extracting the chemical names using this method.
化学知識は,我々の身の回りにある製品の作成や,解決すべき様々な問題の対応のために欠かせない知識である.ニュース,新聞記事,科学技術文献などには,さまざまな化学に関する文章があり,そこには化学知識が包含されている.それらは日々膨大な数が生産され,そこに記述される化学知識も増え続けている.これらの文章から化学知識を得るためには,化学知識を将来にわたって活用できるように効率よく抽出,整理,蓄積することが必要であるが,それには多大な時間と労力が必要となる.
化学知識を有効活用できるように,化学領域においてはこれまで,膨大に蓄積された論文(多くは非構造化データである文章)から人手によりファクトデータベースが整備されてきたが,多様な属性をもつ対象について大規模かつ網羅的なファクトデータベースを構築することは困難な作業であった.しかしながら現在は,多くの論文等が電子化されて提供されるようになったことから,膨大に存在するそれらの文章からファクトデータベースを自動構築することができれば,論文等の増加に対応が可能ではないかと考えられている [1].
化学領域のファクトデータベースの多くは化学物質名とその構造,機能,製造方法,化学反応,用途などの多様な属性から成り立つ.それらを文章から抽出するには様々な側面からの検討が必要である.その中核となるのが化学物質名であることから,まず膨大な文章から化学物質名を表す語句を識別・同定することが必要である.しかし,化学物質名には,命名法による表記のゆれがある,慣用名や商品名など特定の規則性がない表記がある,書き手により任意の表記を用いる場合があるなどの特性があるため,それを識別し,同定することは難しい問題となっている.
文章から化学物質名を抽出する研究は,英文に対する研究が先行している.これは英文が,空白や記号によって容易に単語に区切ることができることで扱いやすいためと考えられる.海外では,化学物質名抽出のワークショップが活発に行われている.BioCreative (Critical Assessment of Information Extraction systems in Biology) IVワークショップ(2014)ではPubMedのタイトルと抄録から,さらにBioCreative Vワークショップ(2015)では特許文書のタイトルと抄録から,化学物質名,遺伝子,タンパク質などを抽出するタスクが設けられた.そこでは,専門家チームによって手作業でアノテーションおよび分類されたCHEMDNER (Chemical Compound and Drug Name Recognition)コーパスが用意された [2, 3].BioCreative IVのCHEMDNERタスクは,10,000のアノテーションしたコーパスのうち3,000のサブセットに対する化学物質名の抽出を競うものである.26チームが参加し,多様な方法で検討が行われた結果,最高点は再現率0.86,適合率0.89,F値0.87であった.一方BioCreative VのCHEMDNERタスクは,21,000の医薬化学特許のタイトルと抄録に化学物質名を手作業でアノテーションしたコーパスを作成し,そのうち7,000のサブセットに対する化学物質名の抽出を競うものである.ここで用いられた国際特許分類は「A61P:生活必需品医学または獣医学;衛生学化合物または医薬製剤の特殊な治療活性」,「A61K 31/00:有機活性成分を含有する医薬品製剤」である.このタスクはノイズの多い特許文書から化学的および生物学的データを抽出する方法を見出すことによって,多様な種類の文書においてもその方法が役立つと考えられたため設定されたものである.こちらは21チームが参加し,最高点は再現率0.91,適合率0.87,F値0.89であった.
ある分野において特定の属性を持つ語を抽出することは,固有表現抽出(NER: named entity recognition)として検討されている.BioCreativeワークショップにおいては,化学物質名のリストを辞書として用意し,一致度によって抽出する方法,化学物質名を構成する文字や文字列に着目したパターンベースのもの,文章上の配置を用いたコンテキストベースのものなどが提案されていた.最近では,いずれの方法もNERに機械学習を用いた方法が多く報告されており,BioCreative IVのCHEMDNERタスクでは26チーム中,20チームが機械学習を用い,辞書ベースだけによるものは3チームであった.機械学習ではCRF,SVM,ロジスティック回帰,マックスエントロピー,ランダムフォレストが用いられている.
一方,日本語文章から化学物質名を抽出する研究およびそのために作成されたコーパスはまだ少ない.日本語文章から化学物質名を抽出する先行研究としては以下のような研究がある.福田らは,物質名を構成する文字の特徴と周辺に現れる語句を手がかりにタンパク質名を抽出した [4].一ノ瀬らは,生化学関連の特許文書から化学物質名の抽出をする手法を提案した.物質名の表記の特徴をとらえ,フラグメント辞書(フェニル,メチル),特性基接頭語,接尾語辞書(ニトロ,イミド),接頭語,接尾語辞書(ジ,トリ),記号辞書(–,'),付加語辞書(誘導体,組成物),単位辞書(重量%,モル),の6種類の辞書を作成し,辞書に登録される用語の組み合わせにより化学物質名を抽出した [5].池田らは,化学物質名を構成する文字種に着目し,カタカナ,英数,「酸」などの漢字,括弧などが連続したものを候補として認識した後,機械学習を用いて物質名としてふさわしいかどうか選択する抽出法が報告されている.これらは主に命名法に基づく記載に適用されるため,慣用名を抽出するのは難しい [6].邊土名らはWikipedia の化合物記事から原材料と製造方法を抽出するために,外部知識源から収集・構築した化合物名辞書を用いて化合物名を置換する手法を提案した [7].これらの研究は文字種の特徴や辞書を用いるパターンベースのものであり,コンテキストベースのものではない.
日本語文章は英語のように単語が空白や記号によって区切られていないため,コンテキストベースの検討を行うには最初に形態素解析を行って,単語に区切る必要がある.形態素解析は文を形態素という意味の最小単位への分割,各形態素への品詞の付与,各形態素の原型への復元の3つの機能を持つものである.基本的に辞書を参照しながら単語を切り出すため,辞書に登録されていない単語は切り出すことはできない.さらに化学物質名は形態素解析では,細かく分離されてしまうため,ひとかたまりの単語として連結する必要がある.
著者らは,化学物質名を構成する形態素の品詞は記号,接頭詞,名詞であると考え,記号,接頭詞,名詞が連続していた場合,それらを連結して一つの単語とすることを提案し,そうすることにより全ての化学物質名が単語として再形成されることを示した [8].
しかしながら,実際の文章においてはそのような連結により,不要な部分が化学物質名についてしまい,化学物質名として成り立たなくなる場合もある.本論文では,特許公開公報を用いて,提案した方法による化学物質名の形成の精度の確認とその向上の方法を提案するとともに,その方法により形成された単語列を用いて,機械学習モデルによる化学物質名の抽出の可能性について検討する.
文献からコンテキストベースの方法で化学物質名を抽出する方法として,教師ありの機械学習を用いることとし,以下のフローチャートに示す流れで処理した(Figure 1).
Flowchart of machine learning
化学物質名であることを示す学習データが必要であるため,50の特許公開公報から人手で作成したタグ付けコーパスを用いる.
形態素解析・連結を行ってひとかたまりにした単語には化学物質名に付加された語句が含まれているため,不要な文字列を分離して化学物質名だけを切り出す処理を行う.
切り出した単語に,文章上の配置,前後関係,の情報を加味するため,Word2Vecを用いてベクトル化を行う [9].Word2Vecとは2013年,Google社より発表された手法で,この手法のベースにあるのは,同じ文脈の中にある単語はお互いに近い意味を持つという考え方に基づいている.CHEMDNERコーパスを用いて高い性能を報告している実験においても特徴量の生成にWord2Vecを用いているものもある [10].また,化学物質名が頻出する特許公報や化学論文では,実験条件,実験例を示すことも多く,文脈のパターンが類似しているという点でもWord2Vec は適していると考える.
この単語ベクトルを入力データとし,コーパスによって予め化学物質名とわかっている単語にラベルをつけ,テストデータからどれくらい化学物質名が認識できるかを機械学習の手法を用いて検討する.
Word2Vecによる単語ベクトルの作成は,コーパスの50公報と,それを含む507公報で行う.Word2Vecは,単語間の関連性をベクトル表現に反映しているため,文書が大規模になればなるほど,より多くの文脈から精度の高いベクトルが生成されると考えられる.したがって,小規模な文書よりはベクトルの精度が増すと考え,50公報の単語に507公報で生成した同じ単語のベクトルを付与し,大規模文書を用いることによる影響を検討する.
3.2 データ2016年7月に公開された特許公開公報から,化学物質名が多く記載されていると考えられる国際特許分類「C化学;冶金」に該当する507公報を公報番号の順で10公報おきに取り出した.最初の50公報についてはFigure 2のように化学物質名に対して前後を<chem>タグと</chem>タグで囲むタグ付けを行い,コーパスを作成している [8].コーパスの文字数は1,120,210,タグ数は総数14,486,ユニーク数5,017であった.
Tagging example
コーパスの対象である50公報のテキストから,タイトル,要約,本文の部分を取り出し,形態素解析ツールMeCabを使って,単語単位に分割した.また,助動詞,動詞は原形にした.そして,記号,接頭詞,名詞が連続していた場合,それらを連結して一つの単語とした.形態素解析前テキスト,形態素解析後テキスト,形態素解析後連結テキストの例を以下に示す(Figure 3).
Examples of text before and after morphological analysis
なお,表記が異なると,例えば『1,3-ブタンジオール』と『1,3-ブタンジオール』が別の単語として扱われるため,文字はすべて全角に統一した.
3.4 化学物質名の分離処理形態素解析と単語の連結により,化学物質名はひとかたまりになったが,化学物質名以外の文字列(以下で不要な文字列という)が前後に付加された.
例えば,『N-メチル-2-ピロリドン等』,『0.9質量%塩化ナトリウム水溶液100g』,『1,4-ジオキサン濃度』,など,化学物質名を含むものの『等』や『0.9質量%』などの物質名に付加された文字列を切り離す必要がある.
付加された文字列の内容,場所を分析し,化学物質名に付着する不要な文字列の分離のために,以下のような正規表現による置換を行った.
1. 商品名や「;」で併記された表記を分離する
(([([「](通称|商品名):?)|;)
2. 物質名のうしろに現れる文字に着目して区切る
(以外|等|中|水溶液|溶液|濃度)
3. かっこに続く属性の説明の前で区切る
(((融点|以下|登録商標))
4. 物質名の最後の文字としては不適切な開き括弧などの記号の前で区切る
([%(,./:[〔+] )
5. 物質名の最初の文字としては不適切な閉じ括弧などの記号の後で区切る
( [・%),./:]〕+])
6. 物質名の前に付加される箇条書き記号の後で区切る
化学式に頻出のCHONSを除いて( (?[0-9A-BD-GI-MP-RT-Za-z]*))
7. 物質名の直前に付加される特定の文字で区切る
(前記|名称|各|上記)
8. かっこのあとに単位や数値があった場合にかっこの前で区切る
(([0-9., 当量ミリモル℃gkKmMlLμ×]*))
9. 特有の語句の前で区切る
(含有量|含有ガス)
10. 特有の語句の後ろで区切る
(重合体|樹脂|炭素繊維|架橋剤)
11. 物質名の後に付加される箇条書き記号の前で区切る
(([0-9A-Za-z]*) )
12. 数字と特有の語句の組み合わせの前で区切る
(([0-9~.]*質量部)
これらの置換により,同定できた化学物質名同定率の変化を置換処理,例,新たに同定できた数の順で示す(Table 1).
なお,化学物質名の前後に現れる文字列と物質名を切り離すにあたり,化学物質名を構成する文字種について,日本化学物質辞書Webで出現する化学物質名の文字種を調べ,例えば,『等』が物質名を構成する文字種ではないことを確認した.
記号,接頭詞,名詞の連結により同定できた物質名は9391個であり,タグ付けした化学物質名の総出現数14486個に占める割合は64.8%であったが,これらの整形により,最終的に11648個,80.4%が同定できた.
3.5 単語のベクトル化形態素解析と単語の連結,不要な文字列の分離を行った後,上述の処理によって得られた,空白で区切られた単語列をWord2Vecを用いて多次元ベクトルに変換した.
Word2Vecのパラメータ(Table 2)を以下に説明,用いた値とともに示す [11].
パラメータにはある単語から周辺の単語を予測するSkip-gramと周辺の単語からある単語を予測するCBOWのどちらの方法を用いるか,次元数,最小単語出現数,ある単語の周囲,何単語までを関連性のある単語としてみなすか,などがある.Word2Vecの周辺単語の予測を行うSkip-gram/CBOWについて,Skip-gramはCBOWに比べて,計算に時間がかかるが,条件を変えても比較的よい精度が得られるとの報告があり [12],Skip-gramで行うこととした.次元数は,大きすぎると訓練時の計算量やモデルの記憶容量が多く必要となる反面,モデルの表現力も向上する.一般的によく用いられている50,100,200次元を用いた.最小単語出現数は,この数字未満の出現数の単語は無視する.テキスト中に少なくとも一定回数以上出現していないと,意味のあるベクトル化ができない.また,最小単語出現数を指定することで,ほとんど出てこない単語の処理に無駄に計算時間を費やすことを避けることができる.ここでは,2と5を用いた.ウインドウ幅は,テキスト中の単語が与えられた際に,その単語からどのくらい離れた単語までを周辺単語とみなすかを制御する.例えば,ウインドウ幅が1の場合には単語と隣接した前後の単語2語が周辺単語として用いられる.ウインドウ幅が増えるほど,ベクトル化の計算量が増えるため,最適な値を決定する必要がある.ここでは,10を用いた.
次に,507公報を使って50公報と同様のやりかたでまず単語切り出し,連結を行い,その後化学物質名の分離のための処理を行った.それを用いて50公報と同じパラメータでWord2Vecによる単語のベクトル化を行い,得られたベクトルを50公報の単語群に付与したものを作成した.
3.6 ラベル付与,学習,評価生成した単語とそのベクトルに,化学物質名か(1)そうでないか(0)のラベルを追加した.
タグ付けした化学物質名からラベルに1を設定した化学物質名データベースを用意する.Table 3に示すように,Word2Vecで生成したベクトルの単語名と用意した化学物質名データベースの単語名が一致した場合,連結によりラベルという列に,「1」が埋め込まれる.「1」がつかなかったラベルには「0」を挿入した.完全一致の場合のみ「1」が入力されるため,タグづけされいても前後に不要な語がついた単語は「1」がつかない.この連結したテーブルを用いて,Word2Vecで生成したベクトルを示す列(50次元であれば50個の列)を説明変数(explanatory variable)とし,連結して追加した化学物質名のラベルを目的変数(objective variable)とし,機械学習を行った.
Replacement process | Example | Newly identified numbers |
String after the substance name | (以外|等|中|水溶液|溶液|濃度) | 681 |
Common name, Product name, etc. | (([([「](通称|商品名):?)|;) | 348 |
Polymer substance name | (重合体|樹脂|炭素繊維|架橋剤) | 296 |
Amount, gas content, etc. | (含有量|含有ガス) | 237 |
Supplementary explanation | (((融点|以下|登録商標))([%(,./:[〔+] )([0-9~.]*質量部) | 223 |
Explanation of quantity, temperature, etc. | (([0-9.、 当量ミリモル℃gkKmMlLμ×]*)) | 195 |
Bullets of sentences | ( [・%),./:]〕+])( (?[0-9A-BD-GI-MP-RT-Za-z]*))(前記|名称|各|上記) | 148 |
Symbol after substance name | (([0-9A-Za-z]*) ) | 129 |
Parameter | Description | Value used |
sg | training algorithm (Skip-gram: 1, predict the surrounding words from the focused word, CBOW: 0, predict a word using its surrounding words) | Skip-gram |
size | dimensionality of the feature vectors | 50, 100, 200 |
min_count | ignore all words with total frequency lower than this | 2, 5 |
window | maximum distance between the current and predicted word within a sentence | 10 |
Concatenated words after morphological analysis | Chemical substance name | ||||||
Word | Vector | Word | Label | ||||
例えば | -0.382337 | -0.257865 | … | -0.28028 | ビニルキシレン | 1 | |
ビニルシラン | -0.06409 | -0.086978 | … | 0.00451 | ビニルシラン | 1 | |
等 | 0.0280 | -0.305011 | … | -0.16858 | 珪素含有化合物 | 1 | |
の | -0.2623 | -0.138371 | … | 0.01383 | ← | ヒドロシラン | 1 |
(C1)アルケル基 | -0.090783 | -0.105178 | … | 0.00929 | 連結 | 珪素化合物 | 1 |
を | -0.0405 | -0.061771 | … | 0.09087 | Pt触媒 | 1 | |
有する | -0.13512 | -0.19288 | … | -0.08023 | フタル酸 | 1 | |
珪素含有化合物 | -0.101084 | -0.126997 | … | 0.00396 | 尿素 | 1 |
機械学習に用いられる説明変数と目的変数の具体例を示す(Table 4).
Explanatory variable | Objective variable | |||||||
Word | Vector | Label | ||||||
例えば | -0.382337 | -0.257865 | … | -0.280278 | 0 | |||
ビニルシラン | -0.064069 | -0.086978 | … | 0.004514 | 1 | |||
等 | 0.03807 | -0.305011 | … | -0.168578 | 0 | |||
の | -0.36233 | -0.138371 | … | 0.013835 | 0 | |||
(C1)アルケニル基 | -0.090783 | -0.105178 | … | 0.009295 | 0 | |||
を | -0.64005 | -0.061771 | … | 0.090873 | 0 | |||
有する | -0.135142 | -0.19288 | … | -0.080293 | 0 | |||
珪素含有化合物 | -0.101084 | -0.126997 | … | 0.003961 | 1 |
教師あり二値分類では高速性,正確性,大規模データに対応可能かどうかを考慮して,決定木(Decision tree),ランダムフォレスト(Random forest),LightGBMの3通りの機械学習を検討した [13].決定木はデータを最もよく分割する条件に基づいてYes,Noの質問を繰り返し,ターゲットのクラスへ分類するもので,ランダムフォレスト,LightGBMは決定木モデルを応用したモデルである.
機械学習を行うにあたり,データを学習用とテスト用に分割する必要がある.BioCreativeVのCHEMDNERデータセットでは学習用とテスト用に2:1に分割しているが,本実験では学習データ数をできるだけ多く取るために学習用とテスト用4:1になるように設定した.
評価の方法は,適合率,再現率,F値を使って行った.
決定木,ランダムフォレスト,LightGBMの機械学習による学習実行の一例についてプログラムと実行画面をFigure 4に示す.Table 5ではベクトルの次元数,最小単語出現数,ウインドウ幅を変化させた場合の学習アルゴリズムによる比較を示す.表中,テストデータの個数はテストデータにおいて化学物質名としてラベル付けされた単語の数とその横に全体の単語数を括弧で示す.
Execution of machine learning(Python version 3.8.3 / Windows 10)
Number of test data | Decision tree | Random forest | LightGBM | |
size 50 | 0.98 | 1.00 | 0.96 | |
min_count 2 | 1718 | 0.98 | 1.00 | 0.83 |
total (88696) | 0.98 | 1.00 | 0.89 | |
size 50 | 1.00 | 1.00 | 1.00 | |
min_count 5 | 1297 | 1.00 | 1.00 | 1.00 |
total (84089) | 1.00 | 1.00 | 1.00 | |
size 100 | 0.98 | 1.00 | 0.98 | |
min_count 2 | 1824 | 0.99 | 0.98 | 0.86 |
total (88696) | 0.99 | 0.99 | 0.92 | |
size 100 | 1.00 | 1.00 | 1.00 | |
min_count 5 | 1240 | 1.00 | 1.00 | 1.00 |
total (84089) | 1.00 | 1.00 | 1.00 | |
size 200 | 0.98 | 1.00 | 0.97 | |
min_count 2 | 1790 | 0.99 | 0.98 | 0.87 |
total (88696) | 0.98 | 0.99 | 0.92 | |
size 200 | 1.00 | 1.00 | 1.00 | |
min_count 5 | 1213 | 1.00 | 1.00 | 1.00 |
total (84089) | 1.00 | 1.00 | 1.00 |
なお,化学物質名かそうでないかを区別する二値分類ではロジスティック回帰が用いられることもあるが,本実験では適合率が0となり,値を計算できなかった.
決定木の手法では最小単語出現数を5と設定した場合,どの次元数でもF値が1.0となった.ランダムフォレストの手法では決定木の結果と同様,最小単語出現数を5と設定した場合,どの次元数でもF値が1.0になり,加えて最小単語出現数が2の50次元でも1.0となった.一方,LightGBMの手法では,最小単語出現数を5に設定した場合,どの次元数でもF値が1.0となったのは他の2法と同じであるが,最小単語出現数が2の場合はF値が0.9前後であった.
決定木,ランダムフォレスト,LightGBMの3通りの機械学習において,ランダムフォレストの手法が最もよいF値が得られた.Word2Vecベクトルの次元数は50, 100, 200と大きくなるにしたがって良好な結果が得られた.最小単語出現数では5に設定すると,すべての手法でF値が1.0となった.
ランダムフォレスト,LightGBMは決定木を応用したモデルであるため,同様な傾向の結果となったと考えられる.F値がBioCreativeでは0.9程度に対し,1.0 は高い結果となったが,これは50公報という少ないデータ数が木構造による学習に対して適応したと考えられる.BioCreative のように20,000程度の場合は,木構造による分離方法では限界があると考えられる.
さらに50公報の単語に507公報の単語ベクトルを付与した場合の結果をTable 6に示す.
Number of test data | Decision tree | Random forest | LightGBM | |
size 50 | 1718 | 0.98 | 1.00 | 0.89 |
min_count 2 | 2106 | 0.86 | 0.91 | 0.68 |
size 50 | 1297 | 1.00 | 1.00 | 1.00 |
min_count 5 | 1714 | 0.93 | 0.96 | 0.82 |
size 100 | 1824 | 0.99 | 0.99 | 0.92 |
min_count 2 | 2095 | 0.85 | 0.91 | 0.71 |
size 100 | 1240 | 1.00 | 1.00 | 1.00 |
min_count 5 | 1633 | 0.93 | 0.95 | 0.85 |
size 200 | 1790 | 0.98 | 0.99 | 0.92 |
min_count 2 | 2056 | 0.86 | 0.90 | 0.72 |
size 200 | 1213 | 1.00 | 1.00 | 1.00 |
min_count 5 | 1685 | 0.93 | 0.96 | 0.86 |
10倍強の507公報を取り出して,50公報の単語ベクトルを507公報の単語ベクトルで置き換えた結果,大規模な単語群では,抽出率は低くなった.しかしながら,大規模な単語群でベクトルを作っても,ある程度の結果がでると考えられる.今回の50公報と507公報は特許公報化学分野をランダムに選択しているものの,50公報の選択では数が少なかったことや,分野に偏りがあり,文章の表現パターンが少なかったため,過学習になったとも考えられる.大規模なものになると多様な文書表現が出現し,ベクトルが明確に区別できなくなる可能性がある.分野の範囲を広げ,かつより大規模な文章の収集を行うことにより,今回試みたベクトルの置き換えが,抽出率に影響を与えるかどうかは今後も検討される必要があると考える.
また今回の実験は,全体の化学物質名に対して,不要な文字を除いて同定することができた80%のデータに対する成果のため,不要な文字が付いているために化学物質名としてラベル化できなかった残りの20%の影響も今後検討する必要があると考える.
日本語の文章から化学物質名を自動抽出する方法を機械学習を用いて検討した.
まず特許公開公報の文章を形態素解析を行い単語に分離し,記号,接頭詞,名詞が連続していた場合,それらを連結した.次に化学物質名に付加された不要な文字列の分離のために,一連の正規表現による置換を行った.これにより80%の化学物質名を同定することができた.その後,Word2Vec手法を用いて全体の単語群をベクトル化し,化学物質名かそうでないかのデータを加えて二値分類を行った.決定木,ランダムフォレスト,LightGBMの3つの機械学習手法で検討した結果,いずれも高いF値が得られた.これは,Word2Vecの条件,機械学習の手法による違いがあるが,機械学習モデルを用いた化学物質名の自動抽出が一定の効果があると示唆するものである.
50公報の単語ベクトルを507公報の単語ベクトルで置き換えた場合,F値は下がる傾向が見られたが一定の高い値であった.これは大規模なコーパスを用いた場合でも,この一連の方法による自動抽出の可能性を示唆するものである.
今後は,化学物質名の同定の精度を高めるとともに,大規模な日本語文章のコーパスの作成が望まれる.