2016-06-21 7 views
-3

私は膨大な数の論文から引用を抽出するプロジェクトを持っています。ここで、引用によって、私は人によって言われたことを意味します。例えば、Alenは「抽出されるテキスト」と言っています。私は他のNLP関連タスクにNLTKを使用していますので、NLTKやPythonライブラリを使用するソリューションは非常に便利です。これは、パターンとしての資格NLTKを使用してテキストから引用を抽出するには

おかげ

答えて

0

は、つまり、あなたが探しているデータは、引用符""の間で常にあります。簡単に言えば、regexをパターンマッチングに使用できます。 のはshe said " DAS A SDASD sdasdasd SADSD", " SA23 DSD " ASDAS "ASDAS1 3123$ %$%"

であるあなたの基本的な例のために働く正規表現の例を見てみましょう -

list = re.findall("\".*?\"", string) 

Listは私たちにここ['" DAS A SDASD SADASD SADSD"', '" SA23 DSD "', '"ASDAS1 3123$ %$%"']

与え、.*?は(改行を除く)任意の文字と一致し、パターンが一致しました引用符(開始\"と終了\")が文字通り。

引用符で囲まれた引用符がこのコードを壊すという事実に注意してください。あなたは期待される出力を得ることはできません。

+0

これは、引用符で囲まれたものを選択します。あなたが評価しているテキストに応じて、あなたは報告されたスピーチではないジャンクの束を拾い上げるでしょう...文字 "A"のような引用符で包まれたもの、 "あいまい"という言葉...など – Joseph

+0

OPは意味のある会話を持つ**構造化されたデータと連動しているとの前提で働いています** OPは「巨大な記事の集合から引用を抽出する必要がある」と言っているからです。だから、私の前提は合理的なものです。私は答えに何か良いものを加えるためにあなたを+1します。 –

1

マユールが述べたように、あなたがに実行するだろう問題は、実際にある引用符の間、物事の驚くほど大量のがあり得ることである引用符

list = re.findall("\".*?\"", string) 

間のすべてのものをピックアップして正規表現を行うことができます見積もりではありません。

学術論文をお持ちの場合は、締め切りの引用の後に番号を検索して脚注番号を取得することができます。そうでなければ非学術論文で、おそらくあなたのようなものを実行できます。より正確にすることができますが、彼らは閉じる引用符の前に改行を含めることができますので、このようなblockquotesとして引用符を失うリスクは(blockquotesはとにかくあなたの問題を引き起こします

"(said|writes|argues|concludes)(,)? \".?\"" 

を)

NLTKの使用に関しては、「言われました」と同義語を見つけるための多分ワードネット以外の多くの助けになるとは思えません。

関連する問題