人工知能技術の発展に伴い、携帯電話の翻訳ソフトを使って自分の言語をリアルタイムで翻訳したり、画像認識技術を使って顔を認証したりするなど、私たちの生活の多くのアプリケーションが AI 技術と結びつくようになりました。その中で、言語処理の分野において、自然言語処理は知能化を図る重要な手段であり、人工知能の分野の重要な分野です。コンピュータ技術を使って自然言語を分析、理解、処理し、人間とコンピュータが相互にコミュニケーションする方法を確立します。一緒にそのベールを脱ぎましょう! 1. NLP とは何ですか?NLP は Natural Language Processing の略で、中国語では自然言語処理を意味します。名前の通り、自然界に存在する人間が理解できる言語を処理することです。では、Processing の目的は何でしょうか? もちろん、コンピューターが人間の使用する言語を理解し、人間と対話できるようにすることです。つまり、コンピューターが人間の言語能力を持ち、人工知能を実現できるようにすることです。人工知能分野の技術や知識に関しては、一般向けにわかりやすく表現することを好みます。これにより、視聴者がこの知識を習得し、視聴者層が広がると考えています。つまり、自然言語処理とは、この分野で行われること、つまり自然言語の処理のことです。 2.NLPフィールドと処理現在、NLP が主に使用されている分野としては、音声アシスタント、機械翻訳、固有表現認識、感情認識、テキスト検索などが挙げられます。私が従事している NLP 関連の仕事は、主に感情認識とテキスト検索に焦点を当てています。 NLP の具体的な処理プロセスは、一般的に一貫しており、テキスト前処理 (表現、データ分析、テキスト拡張) - 処理モデル - 必要な結果の出力 (ターゲット言語、感情極性、検索結果など) という 3 つのステップで構成されます。これら 3 つのステップのうち、最も重要なのは処理モデルの選択であることは容易に理解できます。ディープラーニング技術の継続的な開発と改善により、毎年新しい処理技術が使用されるようになります。これは、多くの NLP 研究者が注目し、革新する鍵でもあります。 2 番目に、より重要なステップはテキストの前処理です。あらゆる自然言語を、より標準化し、より意味的に豊かにし、コンピューターにとってより理解しやすいものにするために、テキストの前処理の方法も継続的に改善されるプロセスです。最後のステップの出力結果については、それほど重要ではありません。これは、さまざまなタスクによって異なります。研究の適用分野が選択されると、最後のステップの出力結果も決定されるため、この点に注意を払う研究者はほとんどいません。もちろん、私たちはこの点をあまり真剣に受け止めていません。したがって、NLP を理解して習得する上で重要なのは、処理モデルの関連技術です。以降のコンテンツでは、これらの技術についても説明し、各技術に関する私自身のアイデアと理解を提示して、関係者がこれらの技術を改善し、革新できるように支援します。しかし、その前に、まずテキスト前処理について触れなければなりません。これは、処理プロセス全体の基礎となるからです。諺にもあるように、「料理上手は米なしでは料理ができない」ですが、テキスト前処理は「米」を作るプロセスです。それでは、「米」を作るプロセスを見てみましょう。 3. テキストの前処理テキスト前処理は、通常、テキスト コーパスをモデルに取り込む前に実行する必要がある一連の前処理タスクです。結局のところ、コンピューターは人間ではないため、自然言語は、コンピューター関連のモデルに入力する前に、コンピューターが認識して処理できるデータに処理される必要があります。したがって、テキスト コーパスは、コンピュータ モデル入力の要件を満たすように前処理する必要があります。たとえば、自然言語テキストをモデルが処理できるテンソル(つまり、主にデータベクトル)に変換して、テンソルのサイズと次元などを標準化します。テキスト予測の科学的前処理により、後続のコンピューティング モデルのパラメータ調整を効果的にガイドできるため、コンピューティング モデルの評価指標がより適切に改善されます。テキスト前処理には、テキスト処理の基本的な方法、テキスト テンソルの表現、テキスト コーパスの分析、テキスト データの拡張という 4 つの側面が含まれます。 3.1. テキスト処理方法 - 単語分割、品詞タグ付け、固有表現認識処理する必要があるテキスト コーパスとしては、現在、短いテキストと長いテキスト、つまり文、段落、または記事が最も一般的なものです。これらの短いテキストと長いテキストを処理するには、短いテキストと長いテキストを理解可能な単語、漢字、またはフレーズに分割する単語分割を実行する必要があります。基本テキストコーパスがすでに特定の単語、漢字、またはフレーズで構成されている場合は、単語分割手順を実行する必要はありません。その中で、単語分割技術で最もよく使われるツールは、jieba と hanlp です。これら 2 つのツールの使い方については、最も基本的な単語分割ツールであるため、詳しく説明しません。IDE ソフトウェア ライブラリでダウンロードでき、使用方法のチュートリアルもあります。実際、その後の開発では、これらの基本ツールはこの処理には使用されません。後続のコンピューティング モデルで使用されるディープラーニング テクノロジには基本的にこの部分が含まれており、つまり、特定の方法で単語の分割を実現できるため、関連する分析ツールを別途ダウンロードする必要はありません。テキストがセグメント化された後、単語または文字が取得されるため、固有表現認識や品詞タグ付けなど、これらの単語または文字の属性を具体的に分析する必要があります。 固有表現認識とは、単語を分割した後にその単語の名詞の固有名詞をマークし、人名、地名、機関名などの専門名詞を見つけることです。一般的な単語に加えて、これらの固有名詞を認識することで、コンピューターはこれらの特別な固有名詞の基本的な認識が可能になり、後続の単語の品詞の認識を妨げなくなります。これは、高レベルの NLP タスクを解決するための重要な基本リンクでもあります。コンピュータが固有名詞の認識を習得できるようにテキスト単語に対して名前付きエンティティ認識を実行した後、品詞のマーク付けを含む他の最も一般的な単語を分析する必要があります。品詞には、名詞、動詞、形容詞などが含まれます。テキストの各段落内の各単語の品詞をマークすることにより、コンピューターはテキスト言語全体を基本的に理解し、それをコンピューターが処理できるテンソル形式に処理することができます。 3.2. テキストテンソル表現 — One-hot\word2vec\word 埋め込み上記の単語分割および品詞タグ付け関連処理の後、単語はまだ自然言語、つまり中国語または英語の形式であり(NLPの実際の応用分野で最も一般的な言語は中国語と英語であるため、この記事のテキストコーパスの選択も中国語と英語に基づいています)、このタイプのコンピューターはまだ処理できないため、これらの自然言語形式をデジタルベクトル、つまり単語ベクトル(ベクトルもテンソルの一種です)に似たものに表現して、テキスト内の各単語がベクトル行列内のベクトルに対応するようにする必要があります。これはテキストテンソルの表現です。テキストをテンソル (行列) の形式で表現することにより、言語テキストを次の一連の解析タスクのコンピューター処理モデルへの入力として使用できます。現在、テキスト テンソルの表現には 3 つの種類があります。 (1)ワンホットエンコーディング:最も単純な単語ベクトル表現方法です。具体的には、単語の位置関係に基づいて、各単語をn要素(nは単語数、次元とも呼ばれます)のベクトルとして表現します。このベクトルの要素は1つだけ1で、他の要素は0です。 1 の位置は、すべての単語の中でのその単語の順序です。以下のように表示されます。 ["I", "like", "watch", "51", "CTO"]、"I" が最初の位置で、ワンホットエンコーディング後も同様です: [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]] (2)word2vec:ワンホット法に基づいており、ワンホット法よりもテキスト単語間の関係を学習するのに適しています。単語を大きなベクトルとして表現する教師なしトレーニング方法(つまり、自律トレーニング)です。ニューラルネットワークモデルを構築することにより、ネットワークパラメータを単語のベクトル表現として使用します。CBOWとskipgramの2種類の方法があります。これら2つの方法のトレーニングプロセスは似ていますが、知識テキスト単語の選択が異なります。 CBOW法では、トレーニングテキストコーパスの対象として一定の長さ(ウィンドウ)を選択し、そこから特定の単語を抽出し、その単語の文脈から抽出した単語を予測します。もちろん、これらの単語はまず、One-hot エンコーディングに基づく処理可能なベクトル形式で表現する必要があります。スキップグラムと CBOW は正反対です。特定の単語を推測するのではなく、特定の単語の文脈を推測し、その単語を使用して単語の文脈を予測します。これら 2 つの方法で学習したテキスト単語間の関係はほぼ同じであり、モデルの最終的な指標とパフォーマンスも基本的に同じであるため、どちらの方法も良し悪しの区別なく選択できます。これら 2 つの方法の全体のプロセスを次の図に示します。 (3) 単語埋め込み: word2vecと同様に、どちらもニューラルネットワークモデルに基づく方法です。どちらも、ニューラルネットワークモデルのトレーニング中にテキストの単語ベクトルを抽出します。これを埋め込みと呼びます。ただし、この方法でトレーニングされた埋め込みは、word2vec 方法で取得された単語ベクトルよりも次元が高く、特徴が豊富になります。広義の単語埋め込みには word2vec 法が含まれます。つまり、word2vec は単語埋め込みの一種と考えることができます。狭義の単語埋め込みは、ニューラル ネットワークに追加される埋め込み層と、ネットワーク全体をトレーニングする過程で生成される埋め込み行列 (埋め込み層のパラメータ) を指します。この埋め込み行列は、トレーニング プロセス中のすべての入力単語のベクトル表現で構成される行列です。異なるニューラル ネットワークは異なるモデルをトレーニングするため、追加された埋め込み層のトレーニングも異なり、学習された単語の埋め込みも良くなったり悪くなったりします。したがって、この単語埋め込みは、さまざまなニューラル ネットワーク モデルのトレーニング パラメータです。ネットワーク モデルの選択の品質は、単語埋め込みの品質に影響します。これについては、後続のさまざまなトレーニング ネットワーク モデルで補足します。 3.3. テキストコーパスのデータ分析と特徴処理テキストコーパスのデータ分析は、コンピュータがテキストの内容を理解するのを助ける補助的な役割を果たしますが、実際のアプリケーションで使用されることはほとんどありません。テキスト データを分析すると、データ コーパスを効果的に理解し、コーパス内の潜在的な問題を見つけるのに役立ち、それによって、その後のモデル トレーニングにおけるハイパーパラメータの選択を導くのに役立ちます。データ分析方法は主に、テキスト内の単語ラベルの数、文の長さ、特定の単語の出現頻度などの統計に基づいています。この部分は主に基本的な統計カウント関数に基づいており、あまり頻繁に使用されないため、詳細には触れません。 特徴の処理は、単語ベクトル抽出方法の補足または拡張でもあり、n-gram 特徴を追加したり、テキストの長さを制限したりすることでコーパス情報を標準化し、強化します。 n-gram の n は選択可能です。現在、ほとんどは 2 と 3 です。つまり、単一の単語を分析するだけでなく、2 つまたは 3 つの単語が 1 つの単語に結合された状況も考慮して分析するため、学習される特徴はより広範で豊富になります。テキスト長の制限は、入力モデルのベクトル長を正規化するためのものです。文長分布には、大多数のテキストをカバーできる適切な長さが選択されます。長すぎるテキストは切り捨てられ、不十分なテキストはパディングされます (通常はゼロパディング操作を使用)。ベクトル長の正規化プロセスの後、後続のモデルトレーニングのパフォーマンスが向上します。 3.4 データ拡張処理データ拡張とは、実際には、テキスト データに他の意味的特徴を追加して、基本コーパスに含まれる特徴をより豊かにすることです。このタイプの強化方法は、コンピューター ビジョンの分野でより広く使用されており、NLP の分野ではあまり使用されていませんが、特定の補助機能があります。現在使用されている拡張方法は、逆翻訳データ拡張です。簡単に言えば、基本コーパスの言語を継続的に他国の言語に変換し、それによって他国の言語に関する内部特徴情報を取得します。操作は比較的簡単で、学習した補助情報の質も高いです。しかし、言語変換では実行できない操作が多すぎるという問題もあります。変換操作が多すぎると、元の意味が失われ、意味が歪んで、最終的なデータ生成が非効率的になります。したがって、変換回数を慎重に選択する必要があります。これまでの作業経験に基づくと、一般的には最大 3 つの言語変換操作を実行することをお勧めします。具体的な数値は、特定のモデルと最終的なパラメータの改善によって異なります。 4. まとめこの記事では、自然言語処理の準備技術、つまりテキストコーパスの前処理を中心に説明および分析します。その中核となるのは、テキストテンソルの表現です。上記の技術的フレームワークを通じて、基本的なテキストテンソル表現技術プロセスをより明確に理解できます。さらに、テキスト データ拡張テクノロジを理解することは、自然言語データの将来の分析にも役立ち、より豊富で潜在的な意味的特徴を抽出できるようになります。もちろん、これは自然言語処理の初期の技術に過ぎません。テキストテンソルを表現するための、より優れたネットワークモデルも存在します。スペースの制約があるため、これらについては次回以降の原稿で一つずつ説明していきます。 著者について51CTO コミュニティ エディターの Xifan は、e コマースの人工知能研究開発センターのビッグデータ技術部門で勤務し、推奨アルゴリズムの開発に携わっていました。現在、私は知能ネットワークとビッグデータを研究している大学院生です。主な専門分野は、推奨アルゴリズム、NLP、CV です。Java、Python、Scala などのコーディング言語を使用しています。 |
<<: ロシアとウクライナのドローン戦争:ドローン艦隊の製造に8年間で90億ドルを費やしたロシアはなぜ制空権を失ったのか?
[[251667]]バディ割り当てアルゴリズムこれはページ フレームの連続セクションであると仮定し...
まだ「投資段階」にある自動運転業界にとって、「新しいインフラ」は単なる概念ではなく、実際のビジネスチ...
[[253697]] [51CTO.com クイック翻訳] 過去 10 年間の人工知能の急速な成長...
ビッグデータや人工知能などの新興技術は猛烈な勢いで発展しており、その一因はディープラーニングの驚異的...
拡散モデルは、テキストプロンプトのガイダンスに基づいて高品質でコンテンツが豊富な画像を生成できる、主...
現在ほとんどの人が行っている仕事が、将来ある日突然完全に消滅したり、永遠に忘れ去られたりするのではな...
ソフトロボット分野の研究者は、人間にとってより安全に操作できる新世代の機械を生み出すことを望んでおり...
戦争の理由はすべて、例外なく一つのこと、つまり生き残ることにつながります。狼の本能がなければ、生き残...
[[358096]]市場の状況がますます複雑化する今日の不安定なビジネス環境では、組織が分析に基づく...
GPT をめぐる戦いは、結局のところ、才能をめぐる戦いなのです。 ChatGPT が瞬く間に成功を...
8月23日、百度のCEOであるロビン・リー氏は中国国際知能産業博覧会で講演し、一般の人々は人工知能...
統計は私たちの日常生活のいたるところに存在し、すべての人や物事は統計を使って説明できるようです。人類...
[[279869]]テキストデータはどこにでもある既存の企業でも、新しいサービスを開発している企業で...