タグ付けされた質問 「natural-language」

自然言語処理は、言語学、人工知能、機械学習、人間の言語の処理と理解を目的とした統計の一連の手法です。

2
SpaCyの.similarityメソッドはどのように計算されますか?
これが正しいスタックサイトかどうかはわかりませんが、ここに行きます。 .similiarityメソッドはどのように機能しますか? うわー、spaCyは素晴らしい!tfidfモデルの方が簡単かもしれませんが、w2vのコードは1行だけですか?! spaCy andrazhribernikショーに関する彼の 10行のチュートリアルでは、トークン、送信、ワードチャンク、およびドキュメントで実行できる.similarityメソッドを示しています。 その後nlp = spacy.load('en')、doc = nlp(raw_text) トークンとチャンク間で.similarityクエリを実行できます。しかし、この.similarity方法では、背後で何が計算されていますか? SpaCyにはすでに.vector、GloVeモデルからトレーニングされたw2vベクトルを計算する非常に単純ながあります(a .tfidfまたは.fasttextmethod はどれくらいクールでしょうか?)。 モデルは、これら2つのw2v、.vector、vectors間のコサイン類似度を単純に計算するのですか、それとも他のマトリックスを比較するのですか?詳細はドキュメントでは明確ではありません。助けていただければ幸いです!

3
頻度の低い単語に対しては階層的なソフトマックスが優れているのに対し、頻度の高い単語に対してはネガティブサンプリングが優れているのはなぜですか?
word2vecのCBOWモデルとskip-gramモデルで、階層的なソフトマックスが頻度の低い単語に対して優れているのに対し、ネガティブサンプリングが頻繁な単語に対して優れているのはなぜかと思います。https://code.google.com/p/word2vec/で申し立てを読みました。

2
切り捨てられた逆伝搬を使用した場合の初期パターンのキャプチャ(RNN / LSTM)
RNN / LSTMを使用してセンチメント分析を行います。これは多対1のアプローチです(このブログを参照)。ネットワークは、通常の30の最後のステップでのみ展開される、切り捨てられたバックプロパゲーション(BPTT)によってトレーニングされます。 私の場合、分類したい各テキストセクションは、展開されている30ステップ(〜100ワード)よりもはるかに長くなっています。私の知識に基づいて、BPTTは単一のテキストセクションに対して1回だけ実行されます。これは、テキストセクション全体を通過し、バイナリ分類ターゲットを計算したときに、損失関数と比較してエラーを見つけます。yyy この場合、各テキストセクションの最初の単語に関して、勾配は計算されません。RNN / LSTMはどのようにして重みを調整し、最初の数ワード内でのみ発生する特定のパターンをキャプチャすることができますか?たとえば、とマークされたすべての文は「I love this」で始まり、とマークされたすべての文は「I hate this」で始まります。RNN / LSTMは、100ステップの長いシーケンスの最後に到達したときに、最後の30ステップだけ展開された場合、どのようにキャプチャしますか?P O S I T IのVのEpos私t私vepositiveN 、E 、Ga t i v enegat私venegative

2
n-gramが単語の代わりにテキスト言語の識別に使用されるのはなぜですか?
2つの一般的な言語識別ライブラリ、Compact Language Detector 2 for C ++および Java用の言語検出では、どちらも(文字ベースの)n-gramを使用してテキスト機能を抽出しました。ワードオブワード(単一ワード/辞書)が使用されないのはなぜですか?また、バッグオブワードとNグラムの利点と欠点は何ですか? また、テキスト分類におけるn-gramモデルの他の用途は何ですか? おっと。同様の質問があるようです: バイグラム(N-gram)モデルを使用してテキストドキュメントの特徴ベクトルを構築することについて しかし、誰かがより包括的な答えを出すことができますか?言語識別の場合、どちらが良いですか? (願わくば、n-gramとword-of-wordsの意味を正しく理解できたと思います(笑)。

2
マルチラベル分類問題にニューラルネットワークを適用する方法は?
説明: 問題ドメインを、それぞれが1つ以上のクラスに属する特徴ベクトルのセットが存在するドキュメント分類とします。たとえば、ドキュメントdoc_1はカテゴリSportsとEnglishカテゴリに属します。 質問: 分類にニューラルネットワークを使用すると、特徴ベクトルのラベルはどうなりますか?それは、0の値が関連のないクラスに、1が関連のクラスに与えられるように、すべてのクラスを構成するベクトルでしょうか?クラスのラベルのリストがの[Sports, News, Action, English, Japanese]場合、ドキュメントdoc_1のラベルは次のようになり[1, 0, 0, 1, 0]ますか?

3
Word2Vecのスキップグラムモデルはどのように出力ベクトルを生成しますか?
Word2Vecアルゴリズムのスキップグラムモデルを理解できません。 連続する単語のバッグでは、基本的にワンホットエンコーディング表現と入力行列Wを乗算した後にそれらを平均化するため、ニューラルネットワークでコンテキストワードがどのように「適合する」かを簡単に確認できます。 ただし、スキップグラムの場合、ワンホットエンコーディングと入力行列を乗算して入力ワードベクトルを取得するだけで、コンテキストワードのC(=ウィンドウサイズ)ベクトル表現を乗算して、出力行列W 'を使用した入力ベクトル表現。 つまり、サイズボキャブラリとサイズエンコーディング、入力行列、およびエンコーディングがあります。出力行列として。ワード所与ワンホットエンコーディングとコンテキスト言葉ではと(ワンホット担当者が有する及びあなたが乗算場合)、入力行列によってあなたが得る、これからスコアベクトルをどのように生成しますか?VVVNNNW∈RV×NW∈RV×NW \in \mathbb{R}^{V\times N}W′∈RN×VW′∈RN×VW' \in \mathbb{R}^{N\times V}wiwiw_ixixix_iwjwjw_jwhwhw_hxjxjx_jxhxhx_hxixix_iWWWh:=xTiW=W(i,⋅)∈RNh:=xiTW=W(i,⋅)∈RN{\bf h} := x_i^TW = W_{(i,\cdot)} \in \mathbb{R}^NCCC

1
パフォーマンスの観点からの単語埋め込みアルゴリズム
約6000万のフレーズをベクトル空間に埋め込み、それらの間のコサイン類似度を計算しようとしています。CountVectorizerユニグラムとバイグラムを生成するカスタムビルドのトークナイザー関数でsklearnを使用してきました。意味のある表現を得るには、行数に比例した膨大な数の列を許可する必要があることがわかります。これは、非常にまばらな行列につながり、パフォーマンスを低下させます。約10,000列しかなかったとしてもそれほど悪くはありません。これは、単語の埋め込みにはかなり妥当だと思います。 私はword2vecそれがはるかに低次元でより高密度の埋め込みを生成すると確信しているので、Googleを使用しようと考えています。しかしその前に、最初に見ておくべき他の埋め込みがありますか?重要な要件は、約6,000万のフレーズ(行)をスケーリングできることです。 私は単語埋め込みの分野にかなり慣れていないので、アドバイスがあれば助かります。 また、パフォーマンスを向上させるために、特異値分解をすでに使用していることも付け加えておきます。

1
期待の最大化の明確化
EMアルゴリズムに関する非常に役立つチュートリアルを見つけました。 チュートリアルの例と写真は単に見事です。 確率の計算に関する関連質問期待値の最大化はどのように機能しますか? チュートリアルで説明されている理論を​​例にどのように接続するかについて、別の質問があります。 Eステップ中に、EMは、どこでもを下回る関数を選択しますこの関数は、。gtgtg_tログP(x ; Θ )log⁡P(x;Θ)\log P(x;\Theta)gt(Θ^(t ))= ログP(x ; Θ^(t ))gt(Θ^(t))=log⁡P(x;Θ^(t))g_t( \hat{\Theta}^{(t)}) = \log P(x; \hat{\Theta}^{(t)}) したがって、この例のは、反復ごとに異なるように見えます。gtgtg_t さらに、例ではとをデータに適用すると、得られますおよび。私にとっては直観に反するように見えます。以前にいくつかの仮定があり、それをデータに適用して新しい仮定を取得したため、データは何らかの形で仮定を変更しました。がと等しくない理由がわかりません。 Θ (0 ) B =0.5 Θ (1 ) A =0.71 Θ (1 ) B =0.58 Θ(0) Θ(1)Θ^(0 )あ= 0.6Θ^A(0)=0.6\hat{\Theta}_A^{(0)} = 0.6Θ^(0 )B= 0.5Θ^B(0)=0.5\hat{\Theta}_B^{(0)} = 0.5Θ^(1 )あ= 0.71Θ^A(1)=0.71\hat{\Theta}_A^{(1)} = 0.71Θ^(1 …

1
SVDの前に単語共起行列に個別の相互情報を適用することの長所と短所は何ですか?
単語の埋め込みを生成する1つの方法は次のとおりです(ミラー)。 コーパスを取得します。たとえば、「飛行が好きです。NLPが好きです。ディープラーニングが好きです。」 それから単語共起行列を作成します。 でSVDを実行し、Uの最初の列を保持します。XXXkkk 部分行列の各行は、その行が表す単語を埋め込んだ単語になります(行1 = "I"、行2 = "like"、…)。U1:|V|,1:kU1:|V|,1:kU_{1:|V|,1:k} ステップ2と3の間に、点ごとの相互情報が適用される場合があります(A. HerbelotとEM Vecchiなど。2015。共有世界の構築:モデル理論的意味空間への分布のマッピング。自然言語処理における経験的方法に関する2015年会議の議事録。リスボン、ポルトガル。) SVDの前に単語共起行列に個別の相互情報を適用することの長所と短所は何ですか?

2
言葉の連続袋についての質問
この文を理解できません。 最初に提案されたアーキテクチャは、フィードフォワードNNLMに似ています。非線形の隠れ層が削除され、投影層がすべての単語(投影行列だけでなく)で共有されます。したがって、すべての単語が同じ位置に投影されます(それらのベクトルは平均化されます)。 投影層と投影行列とは何ですか?すべての単語が同じ位置に投影されるとはどういう意味ですか?そして、なぜそれはそれらのベクトルが平均化されることを意味するのですか? この文は、ベクトル空間での単語表現の効率的な推定(Mikolov et al。2013)のセクション3.1の最初のものです。

2
LSTMを使用した言語モデリングタスクでの未知の単語の処理
自然言語処理(NLP)タスクでは、word2vecベクトルを単語の埋め込みとして使用することがよくあります。ただし、単純にこれらの単語がトレーニングデータで十分に見られないために、word2vecベクトルによってキャプチャされない未知の単語が多数ある場合があります(多くの実装では、単語を語彙に追加する前に最小カウントを使用します)。これは特に、単語がつづりが間違っているTwitterなどのテキストに当てはまります。 長期短期(LSTM)ネットワークを使用した感情予測などのNLPタスクをモデル化する場合、このような未知の単語をどのように処理する必要がありますか?2つのオプションが表示されます。 「未知の単語」トークンをword2vec辞書に追加します。 これらの未知の単語を削除して、LSTMがその単語が文の中にあることさえ知らないようにします。 これらの単語を処理する好ましい方法は何ですか?

5
単語頻度データの分散を測定する方法は?
単語数のベクトルの分散量をどのように定量化できますか?頻繁に発生するさまざまな単語が多く含まれているため、ドキュメントAで高く、頻繁に発生する1つの単語(またはいくつかの単語)が含まれているため、ドキュメントBで低くなる統計を探しています。 より一般的には、公称データの分散または「広がり」をどのように測定しますか? テキスト分析コミュニティでこれを行う標準的な方法はありますか?

3
バイグラム(N-gram)モデルを使用したテキストドキュメントの特徴ベクトルの構築について
テキストマイニングの機能構築の従来のアプローチはバッグオブワードアプローチであり、tf-idfを使用して、特定のテキストドキュメントを特徴付ける特徴ベクトルを設定することで拡張できます。現在、バイグラム言語モデルまたは(N-gram)を使用して特徴ベクトルを構築しようとしていますが、その方法がよくわかりませんか?単語の代わりにバイグラムで頻度カウントを計算し、tf-idf重み付けスキームを使用してそれを強化する、つまり、bag-of-wordsのアプローチに従うことはできますか?

2
一般的なテーマで文字列をグループ化するにはどうすればよいですか?
たとえば、プログラミングに関する文字列とプログラミングに関する他の文字列、物理学に関する文字列と物理学に関する他の文字列などを、さまざまなトピックについてグループ化しようとしています。問題の明白な理論的な言語的側面にもかかわらず、私は実際にプログラミング/ソフトウェアを使用してこれを行うことを探しています。 まとめ:多数の文字列がある場合、それらをセマンティックテーマでグループ化するにはどうすればよいですか? 特定のアプリケーション:一般的なグループ(車、コンピューター、政治、カナダ、食品、バラクオバマなど)に分類したい約20万の雑学クイズがあります。 調べた内容:ウィキペディアには自然言語処理ツールキットのリストがあります(私がやろうとしていることが実際にはNLPと呼ばれていると仮定しています)。 注:これを行うには追加の知識が必要であることが指摘されています(たとえば、ポルシェは自動車であり、C ++はプログラミング言語です)。次に、トレーニングデータが必要だと思いますが、質問と回答のリストしかない場合、どうすればトレーニングデータを生成できますか?次に、トレーニングデータをどのように使用しますか? その他のメモ: Q&Aヘルプの現在のフォーマット(JSONのように見えますが、基本的には未加工のテキストファイルです)の場合: // row 1: is metadata // row 2: is a very specific kind of "category" // row 3: is the question // row 4: is the answer { 15343 A MUSICAL PASTICHE Of classical music's "three B's", he was the one born …

1
TF-IDF対数での対数の使用について
読んでいた: https://en.wikipedia.org/wiki/Tf%E2%80%93idf#Definition しかし、なぜこの式がそのように構築されたのか、正確には理解できないようです。 私が理解していること: iDFは、各文書に用語Sが出現する頻度をある程度のレベルで測定する必要があり、用語が出現する頻度が高くなるにつれて値が減少します。 その観点から iDF(S)=# of Documents# of Documents containing SiDF(S)=# of Documents# of Documents containing S iDF(S) = \frac{\# \text{ of Documents}}{\# \text{ of Documents containing S}} さらに、用語の頻度は、次のように正しく記述できます。 tf(S,D)=# of Occurrences of S in document D# maximum number of occurrences for any string Q in document Dtf(S,D)=# …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.