質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

Q&A

解決済

1回答

672閲覧

文章から比喩表現を抽出する

kogashun

総合スコア15

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Mecab

Mecabは、オープンソースの形態素解析エンジンです。 言語、辞書、コーパスに依存しない汎用的な設計を基本方針としています。 Mecabの由来は、開発者の好物である和布蕪(めかぶ)から名づけられました。

0グッド

0クリップ

投稿2018/09/20 11:52

編集2018/09/20 11:53

実現したいこと

最近pythonでmecabで日本語の勉強をしております。
その一環として文章から比喩表現を抽出するアプリを作りたいと思います。

ネットを散見したのですが、他のプログラム言語と比べて言語処理に長けたPythonでも
比喩表現を抽出するアプリやソースは見つかりませんでした。
Pythonを使って比喩表現を抽出する処理を記述しているソースがありましたら教えてください。

比喩表現について

比喩はあるものを他のものに例える表現のことです。
抽出対象は以下の3種類を考えています。

・直喩
「~~のように」といったたとえを明示的に示している比喩
例)動かざること山の如し

・隠喩
たとえを明示的に示していない比喩
例)ガラスの心

・擬人法
人間以外のものを人間に例える
例)風がページをめくる

現在の考え

直喩はつなぎとなるキーワードを羅列して前後の言葉を抽出すればできそうですが、
残りの2つは難しいですね。実際に抽出するには骨が折れそうです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

これは学術研究として研究されているような話題ではないでしょうか。コーディングさえすれば簡単に組めるようなものではないかと。

「比喩表現 抽出」などで検索して出てきたものを適当に貼りますが、自分でも調べてみてください。

https://www.jstage.jst.go.jp/article/jnlp1994/10/2/10_2_43/_pdf/-char/ja
http://www.anlp.jp/proceedings/annual_meeting/2011/pdf_dir/F4-4.pdf
http://www.anlp.jp/proceedings/annual_meeting/2017/pdf_dir/P2-1.pdf

基本的に直喩はルールベースで取り扱えそうですが、隠喩や擬人法はちょっとどうだろう、という感じかと。


「勉強」が目的なら、もう少し既知の知見が積み上げられていて、組みやすいものから始めることをおすすめします。

いきなり難しい領域にチャレンジすることはないです。

投稿2018/09/20 12:02

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kogashun

2018/09/20 12:15

現在の考えでも書きましたが、私もネットを調べた結果、「基本的に直喩はルールベースで取り扱えそうですが、隠喩や擬人法はちょっとどうだろう、という感じかと。」という同じ感想を抱きました。 比喩表現自体は義務教育で学ぶものなので解決法はPythonならあるだろうと思っていましたが、残念です。
kogashun

2018/09/20 12:17

>いきなり難しい領域にチャレンジすることはないです。 探せばあると思ったのですが、やはり言語処理は難しい分野なんですね。 日本語は難しいです。
hayataka2049

2018/09/20 12:22

うまいアルゴリズムが発見されていない、あるいは機械学習で解くにしてもどんなデータを入出力にすれば良いのかよくわからない、という状況なので、pythonならできるということはないです。 NLPはまだ未熟な技術です。人間にわかるものがコンピュータで容易に取り扱えるとは限りません。
kogashun

2018/09/20 15:02

ベストアンサーを決めずに回答の受付を打ち切るのはどうしたらいいんでしょうか。 問題が解決したわけではないのでベストアンサーにするのは変かなと思うのですけど。 このまま置いておいたほうがいいのでしょうか。
hayataka2049

2018/09/20 15:05

解決しなければopenにしたままで良いと思います。そのうち他の方が妙案を出してくれる可能性もなくはないのですし
kogashun

2018/09/20 15:20

そうですね。このままにしておきます。回答ありがとうございます。
quickquip

2018/09/21 14:31

自然言語処理的にいって、大学院にいって2年間真剣に取り組んで何か良い結果が得られるのか? ものすごく難しい問題でしたということを確認して終わるんじゃないか? というレベルの問題ですね……。最近(ここ数ヶ月)ぐらいの国際会議などでなにかすごい成果がでていれば話は別になりますが、それを調べる能力はないのでコメント欄で失礼します。
kogashun

2018/09/22 02:47

回答ありがとうございます。 やっぱり難しい問題なのですね。
Zuishin

2018/09/22 02:58

エジソンは「私は失敗はしていない。これではうまくいかないという一万通りの方法を発見しただけだ」と言っています。 難しい質問なので閉めるには早すぎるかもしれませんが、どうしても自分には無理だとわかったときには「この問題を説くには技術の進歩が足りていないことを発見した」と思い、それを確認するのに最も役立った回答をベストアンサーに選んで注釈をつけるのが良いのではないかと思います。 または、自分で調べるにあたって発見した周辺情報をまとめて資料として挙げて自己解決とするのが良いと思います。
kogashun

2018/09/22 13:40

最初は解決していないのに解決済みにして残すのに抵抗がありました。 現状でこの問題を解決するのは無理だというのも1つの結論だという指摘も正しいと思ったのでこの問題はここで一区切りつけたほうがいいと考えました。 後はタイトルだけ読んでこの問題が安易に解決できるものだと誤解されることがないよう願っております。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問