【51CTO.com クイック翻訳】1. はじめにテキスト要約は、自然言語処理 (NLP) の分野におけるアプリケーションの 1 つであり、私たちの生活に大きな影響を与えることは間違いありません。デジタル メディアと出版業界は成長を続けていますが、記事や文書、書籍全体を読んで、それが役に立つかどうかを判断する時間がある人はいるでしょうか? ありがたいことに、テキスト要約テクノロジーはすでに存在しています。 inshorts というモバイル アプリを使用したことがありますか? これは、ニュース記事を 60 語の要約に変換できる非常にクリエイティブなニュース アプリです。この記事で学ぶのはまさにこれ、つまり自動テキスト要約です。 自動テキスト要約は、自然言語処理 (NLP) の分野における最も困難かつ興味深い問題の 1 つです。これは、書籍、ニュース記事、ブログ投稿、研究論文、電子メール、ツイートなどの複数のテキスト ソースから簡潔で意味のあるテキスト要約を生成するプロセスです。 私たちが直面するテキストデータの量が膨大であるため、最近では自動テキスト要約システムの需要が驚異的に高まっています。 この記事では、テキスト要約の分野を探り、TextRank アルゴリズムの仕組みを理解し、Python でアルゴリズムを実装します。 2. テキスト要約方法自動テキスト要約は 1950 年代から人々の注目を集めてきました。 1950 年代後半に Hans Peter Luhn によって発表された「文学要約の自動作成」と題する研究論文では、単語の頻度や語句の頻度などの特徴を使用して、テキストから重要な文を抽出し、記事を要約しました。 1960 年代後半に Harold P Edmundson が実施したもう 1 つの重要な研究では、文にキーワードが含まれているかどうか、タイトルに含まれる単語が本文に出現しているかどうか、本文内での文の位置などの方法を使用して重要な文を抽出し、テキスト要約を生成しました。それ以来、自動テキスト要約の分野における課題に対処するために、多くの重要かつ刺激的な研究が発表されてきました。 テキスト要約は、抽出要約と抽象要約の 2 つのカテゴリに大別できます。
この記事では、抽出要約技術に焦点を当てます。 3. TextRankアルゴリズムを理解するTextRank アルゴリズムの使用を開始する前に、別のアルゴリズムである PageRank アルゴリズムを理解する必要があります。実際、TextRank アルゴリズムはこれに基づいて開発されました。PageRank は主に、Web 検索結果で Web ページをランク付けするために使用されます。例を参考にして、このアルゴリズムの基本を簡単に理解してみましょう。 3.1. PageRankアルゴリズム w1、w2、w3、w4 という 4 つの Web ページがあるとします。これらのページには他のページへのリンクが含まれています。ただし、これらのページの中には、他のページへのリンクがないものもあります。このようなページは、ダングリング ページと呼ばれます。
これらのページをランク付けするには、PageRank スコアと呼ばれるスコアを計算する必要があります。このスコアは、ユーザーがそのページにアクセスする確率です。 ユーザーがあるページから別のページに移動する確率を取得するには、n 行と n 列 (n は Web ページの数) を持つ正方行列 M を作成します。 マトリックスの各要素は、ユーザーがある Web ページから別の Web ページに移動する確率を表します。たとえば、下の図の強調表示されたセルは、Web ページ w1 から Web ページ w2 にジャンプする確率を表しています。 Webページジャンプ確率の初期化方法は次のとおりです。
したがって、この場合、行列 M は次のように初期化されます。 マトリックス内の値は継続的に反復的に更新され、最適な Web ページのランキングが実行されます。 4. TextRankアルゴリズムPageRank アルゴリズムの基本的な考え方を理解した後、TextRank アルゴリズムを理解しましょう。 2 つのアルゴリズムの関係を次に示します。
TextRank アルゴリズムは、抽出型の教師なしテキスト要約手法です。 TextRank アルゴリズムのフローを見てみましょう。
5. 問題の説明私はテニス愛好家として、テニスに関するオンライン記事をできるだけ多く読んで、テニスの最新の出来事を常に把握するようにしています。しかし、それはかなり難しい作業であることがわかりました。オンライン上のリソースは非常に多く、私の時間は非常に限られていました。 そこで私は、複数の記事をスキャンして記事の要約を提供できるシステムを設計することにしました。これをどうやって行うのでしょうか? このチュートリアルではその方法を説明します。テキストの簡潔で明確な要約を作成することを目的として、テニスのテキストのデータセットに TextRank アルゴリズムを適用します。 これは実際には単一ドメインの複数ドキュメントの要約タスクであることに注意してください。つまり、複数の記事を入力として受け取り、単一のターゲット トピックの要約を生成します。 この記事では、マルチドメインのテキスト要約については取り上げませんが、独自に学習することができます。 使用するデータセットはここからダウンロードできます。 6. TextRankアルゴリズムの実装Jupyter Notebook を開いて、今学んだことを実装してみましょう。 6.1. 必要なライブラリをインポートする まず、使用するライブラリをいくつかインポートする必要があります。
6.2. データの読み取り 次に、データセットを読み込む必要があります。前のセクションでデータセットのダウンロード リンクを提供しました (見逃した場合に備えて)。
データの表示 データがどのようになっているか簡単に見てみましょう。
データセットには、「article_id」、「article_text」、「source」の 3 つの列が含まれています。最も興味深いのは、「article_text」列です。ここには記事のテキストが含まれています。変数の値をいくつか出力して、それがどのように見えるかを確認することができます。
出力:
出力:
ここで、2 つのオプションがあります。各記事の要約を個別に生成するか、すべての記事の単一の要約を生成するかです。問題の要件を考慮して、後者を実行します。 6.4. テキストを文に分割する 次のステップは、テキストを個々の文に分割することです。nltk ライブラリの sent_tokenize() 関数を使用できます。
文のリストのいくつかの要素を出力します。
出力:
6.5. GloVe単語ベクターをダウンロードする GloVe 単語ベクトルは単語のベクトル表現です。これらの単語ベクトルは、後で文ベクトルを作成するために使用されます。 Bag-of-Words または TF-IDF 方式を使用して文の特徴を作成することもできますが、これらの方法では単語の順序が無視されます (また、特徴の数は通常非常に多くなります)。 ここで入手できる事前トレーニング済みの Wikipedia 2014 + Gigaword 5 GloVe ベクトルを使用します。これらの単語ベクトルのサイズは 822 MB であることに注意してください。
単語ベクトルを抽出する必要があります:
出力:
これで、辞書内の 400,000 語すべてに対する単語ベクトルが揃いました。 6.6. テキストの前処理 テキスト データをできるだけノイズのないものにすることは常に良い習慣です。それでは、基本的なテキストのクリーンアップをしてみましょう。
ストップワードを削除します (ストップワードとは、英語の am、the、of、in など、言語で最もよく使用される単語の一部です)。 nltkstopwords をまだダウンロードしていない場合は、次のコードを実行してください。
次にストップワード リストをインポートします。
データセットからストップワードを削除する関数を定義します。
GloVe 単語ベクトルの助けを借りて、clean_sentences を使用してデータ内の文のベクトルを作成します。 6.7. 文のベクトル表現
それでは、文章のベクトル表現を作成しましょう。まず、文を構成するすべての単語のベクトル (各ベクトルは 100 次元) を取得し、次にこれらのベクトルの平均を取って文のベクトルを取得します。
6.8. 類似度マトリックスの準備 次のステップは、文間の類似度を計算することです。コサイン類似度法を使用して、文ベクトル間の類似度を計算します。 まず、次元 (n * n) のゼロ行列を定義しましょう。この行列は、文のコサイン類似度スコアを使用して初期化されます。ここで、n は文の数です。
6.9. PageRankアルゴリズムの適用 次のステップに進む前に、類似度マトリックスを、頂点が文を表し、辺が文間の類似度スコアを表すグラフに変換する必要があります。このグラフに PageRank アルゴリズムを適用して、文章をランク付けします。
6.10. 要約抽出 ***、生成された要約から上位 N 個の文を抽出します。
出力:
このようにして、目的のテキスト要約結果が得られます。 7. 次は何ですか? 自動テキスト要約は研究のホットな話題であり、この記事ではその表面を少し触れただけです。今後は、ディープラーニングが重要な役割を果たす抽象的なテキスト要約技術を探求していきます。さらに、次の要約タスクも研究できます。 1. 問題別の要約タスク
2. 特定のアルゴリズムの概要タスク:
8. 結論この投稿が自動テキスト要約の概念を理解する助けになったことを願っています。さまざまなユースケースがあり、これを使用して非常に成功したアプリケーションが作られています。ビジネス上の理由であっても、単に知識を習得するためであっても、テキスト要約テクノロジーは、NLP 愛好家が知っておくべき手法です。 今後の投稿では、高度なテクニックを使用した抽象的なテキスト要約テクニックについて取り上げたいと思います。上記のコードは、この Github にあります。 [51CTOによる翻訳。パートナーサイトに転載する場合は、元の翻訳者と出典を51CTO.comとして明記してください] |
>>: 驚異的な言語 AI モデルが登場しました!物語を作り上げ、それを現実のように見せたり、質問と回答の要約を書いたりする
生産性、精度、意思決定能力を向上させるために人工知能 (AI) を導入する手法は、さまざまな業界で広...
著者 | 王昊レビュー | Chonglou近年、推奨システムにおけるランク付け学習の応用は非常に稀...
[[413820]]グラフは、ソーシャル ネットワークからバイオインフォマティクス、ロボット工学の...
2019年を振り返ると、無人商用車にとっては着陸の兆しがなく、資金調達がますます困難になり、最悪の...
2月3日午前11時頃、捜狗入力法の一部のユーザーは、河北省興隆市でマグニチュード12の地震が発生し...
産業用ロボットとは何ですか?工業生産で使用される産業用ロボットには、溶接ロボット、研削・研磨ロボット...
編集者注: ディープラーニングの継続的な発展により、音声認識技術は大幅に向上し、人々の日常生活に多く...
2019 年 10 月末時点で、HanLP と呼ばれる自然言語処理ライブラリが GitHub で ...
IT 分野は革新を止めたことがなく、ネットワーク分野も例外ではありません。今日は、ネットワーク革新を...
[[248958]]今週末、インターネットは再び混乱に陥った。ジャック・マーが2年かけて準備してきた...
起業プロジェクトの数、資金調達額、資金調達のスピードなど、AIは近年間違いなく注目の産業です。しかし...
人類が宇宙に建設した最初の工場がここにあります。しかも無人工場です!先週、この衛星はマスク氏のスペー...