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

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

新規登録して質問してみよう
ただいま回答率
85.35%
アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Mecab

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

Q&A

解決済

1回答

992閲覧

平叙文(穴埋め問題)から疑問文(一問一答問題)を作成したい

aya0514

総合スコア9

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Mecab

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

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

自然言語処理

自然言語処理は、日常的に使用される自然言語をコンピューターに処理させる技術やソフトウェアの総称です。

0グッド

1クリップ

投稿2020/09/10 00:49

穴埋め問題から一問一答問題を作成したい

教科書の文から作った穴埋め問題を一問一答形式の問題にしたいです。

例)(文)メフメト2世はビザンツ帝国を滅ぼした (空所単語)ビザンツ帝国
→(問)メフメト2世が滅ぼしたのはどこ。(答)ビザンツ帝国

現実的に可能かどうか教えてください。
以下のような手順で作成しようと思っています。

品詞分解(形態素解析)

単文・複文・重文の判別(主語述語の個数、並べ方から判別。主語述語の個数や判別はGiNZAを使用)

空所単語から疑問詞の判別

並べ替えて疑問詞疑問文を作成

特に空所単語から疑問詞の判別をどのようにすればいいのかがわかりません。
もしわかる方がいたら、どのようにすれば可能かをご教授していただけるとありがたいです。
また、このやり方で現実的に可能かどうか教えていただけるとありがたいです

###利用環境
iOSアプリで作成しているので、swift又はpythonで教えていただけるとよりありがたいです。

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

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

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

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

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

episteme

2020/09/10 03:13 編集

名刺:[ビザンツ帝国]が国名/地名であることはなんらかの方法で得られるのでしょうか? それがないと 人類は[ニホンオオカミ]を滅ぼした に対し "人類が滅ぼしたのは"に後続するのは「どこ?」なのか「なに?」なのか 「いつ?」なのか 「だれ?」なのか を決定できません。
aya0514

2020/09/10 02:47

説明不足で申し訳ありません それを自動で認識することは不可能でしょうか そこが上記でどのようにすればいいかわからないと言った、空所単語から疑問詞の判別です。 もし不可能なら、外部から使用者が(地名/年号/法律/事件・・)のように選択肢から選ぶのような形にしたいとおもっています。 もし後者でできるようでしたらやり方を教えてもらえるとありがたいです。
aya0514

2020/09/10 02:49

すみません、マルチポストが推奨されていないことを知りませんでした。 片方で回答をいただいたら解決した旨を自己解決で記載するつもりでした ご注意ありがとうございます
episteme

2020/09/10 02:58

> それを自動で認識することは不可能でしょうか 無理じゃないかしら。形態素解析で判定できるのは品詞どまりでしょうから。 > 外部から使用者が(地名/年号/法律/事件・・)のように選択肢から選ぶのような形にしたいとおもっています。 > もし後者でできるようでしたらやり方を教えてもらえるとありがたいです。 使用者に 「どの部分を問うか」と「その種別(地名/年号/法律/事件・・)はなにか」を問い、 それを基に問題文を生成するのでしょうね。
aya0514

2020/09/10 03:10

そのように文章の空所部分とその種別を使用者に入力してもらったら、上の方法で問題文を生成するのは現実的ですか? 質問が重なってしまってすみません
episteme

2020/09/10 03:12

> 上の方法で問題文を生成するのは現実的ですか? それはあなたが決めることじゃありませんか?
aokikenichi

2020/09/10 03:23

今一度何をなさりたいのかを整理された方がよろしいかと思います。 例)(文)メフメト2世はビザンツ帝国を滅ぼした (空所単語)ビザンツ帝国 →(問)メフメト2世が滅ぼしたのはどこ。(答)ビザンツ帝国 これが実現できたとして 空欄補充 と何が違うのでしょうか。 教科書であれば用語がある程度限定されておりますので、 固有名詞リストを活用 などである程度機械化ができるかと思いますが、それでもかなり労力がかかります。 人力でのアノテーション(意味づけ)に頼ることも考えられますが、 労力を掛けた割には空欄補充とほぼ違わないものでは協力者も得られにくいかと思います。 もっと自由度の高い問題形式が求められているのか、単に自然言語処理の学習の一つとしてトライしたいのか によるかと思います。
aya0514

2020/09/10 03:29

いろいろな意見ありがとうございます。 もう少し、検討して実際にやるかどうか決めたいと思います
aokikenichi

2020/09/10 03:40

取組み自体を否定するものではないです 自然言語処理はまだまだやるべきこともチャンスもたくさんあると思っています またご縁がありましたら
episteme

2020/09/10 07:19

(問)メフメト2世が滅ぼしたのは? って訊くことにすれば種別を問わないけどwww
aya0514

2020/09/11 04:19

たしかにそうですね!笑 いろいろな意見やアドバイスありがとうござます。 自然言語処理の学習もまだまだなので、できるところまで挑戦したいと思います ありがとうございました
m3yrin

2020/09/18 10:09

お疲れさまです。あまり調べられていませんが、参照文と回答のペアから、有用な質問文を生成する自然言語処理のタスクがあるようです。見た範囲ですと、機械学習(ニューラルネットワーク)を用いた計算負荷の高い方法で取り組まれています。 iOS上とのことですので、質問者様の意図と乖離があるように感じます。(相応の計算リソースと日本語のデータの収集が必要となります) 論文等で良ければいくつか上げることができますが、必要でしょうか?
aya0514

2020/09/19 02:31

興味があるので、送っていただけると嬉しいです! ありがとうございます
guest

回答1

0

ベストアンサー

お疲れ様です。 “Question Generation” という、参照する文章と回答例に沿う有用な質問文を生成する自然言語処理のタスクがあるようです。

最近も研究が行われているトピックなので、現実的かどうかが微妙ですが、自然言語処理のタスクとして見つけたものを載せます。


英語における最近の論文と実装は以下にまとまっていました。
https://paperswithcode.com/task/question-generation

これらはニューラルネットワークを使うので、より自然な文章が生成できると思います。
また、特に以下の論文が近いように感じます。

Generating Highly Relevant Questions (Jiazuo Qiu and Deyi Xiong, EMNLP 2019)
https://arxiv.org/abs/1910.03401

ただし、今回は日本語の文章に対する取り組みなので、このようなやり方が現実的かは微妙です。モデルの学習のために大きな日本語の学習データ、相応の計算機が必要です。


日本語での研究は以下のようなものがありました。

製品マニュアル文からの質問自動生成 (佐藤, 他, JSAI 2018)
https://confit.atlas.jp/guide/event-img/jsai2018/1J1-03/public/pdf?type=in

こちらはテンプレートの生成によって取り組むもののようです。


aokikenichi様も指摘されていますが、もっと簡単に実現できる場合もあるように感じます。
今回利用できるデータの形式や、求められる質問文の品質によっては、単にGinzaからの結果などを組み合わせてルールベースによる実装でも十分な場合もありそうです。

以上です。

投稿2020/09/19 05:38

m3yrin

総合スコア132

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問