マルコフ連鎖とは何か


では、まずマルコフ連鎖とは何かを学びましょう.
マルコフ連鎖は可能な事象の確率過程(ランダム過程)である.
だから、情報やデータを与える場合は、イベントの進化を変更することが可能です.
さあ、どうやって動くか見ましょう.
例えば、3つの入力があります.
  • 私はサムです.
  • 私はケビンです.
  • 私は
  • レッツゴーステップバイステップのアルゴリズムを学ぶには

    ビルチェーン

  • まず最初に、我々は我々の文をトークン化しなければなりません.出力は次のようになります.
  • ["I", "am", "Sam."]
    ["I", "am", "Kevin."]
    ["I", "do"]
    
  • 第二に、我々はチェーンを構築し始める.
    私たちは、それぞれのトークン化された文を繰り返す必要があります.
    リストを作成しましょう.
  • [["I", "am", "Sam."], ["I", "am", "Kevin."], ["I", "do"]]
    

  • このリストを繰り返す間、我々はチェーンを作成するべきです.
  • 最初の単語、最初の単語:"I"
  • {
      "I": {
    
      }
    }
    
    あなたが見ることができるように"I" 文を生成する.
    だからあなただけのような出力を取得します"I I I I I I" !
  • 最初の文、2番目の単語:"am"
  • {
      "I": {
        "am": 1
      },
      "am": {
    
      }
    }
    
    だって"am" 言葉は後になる"I" , 追加しました
    イン"I" ノード.そして1が1 / 1 . 何故なら
    後に来ることができる唯一の可能性"I" ワード.我々は
    別の作成"am""I" 可能な言葉のために
    それは後で来ることができます"am" .
  • 最初の文、3番目の単語:"Sam."
  • {
      "I": {
        "am": 1
      },
      "am": {
        "Sam.": 1
      },
      "Sam.": {
    
      }
    }
    
    追加しました"Sam." to "am" 後に来るから"am" .
    そして、別のノードを"am" 可能な単語
    それは後で来ることができます"Sam." .
    簡単に言うと、我々は我々がしたのと同じことをした"am" 前に.
    そして、我々の文は終わりました.
  • 二番目の文、最初の単語:"I"何もする必要はない"I" 既に存在する
    そして、それはどんなノードにもありません.
  • 第二文第二語"am"第二文、第一単語と同じプロセス.
  • 第二文、第三語:"Kevin.
  • {
      "I": {
        "am": 1
      },
      "am": {
        "Sam.": 0.5,
        "Kevin.": 0.5
      },
      "Sam.": {
    
      },
      "Kevin.": {
    
      }
    }
    
    我々はそれを追加しました"am" ノードですが、値は0.5 . なぜ?だって
    つの可能な単語が来ることができます."Sam" and "Kevin." .
    したがって、値は1 / 2 = 0.5 . ノードを作成しました
    "am" それぞれの新しいノードに対して行います.
  • 第三文、第一語:"I"何もない!なぜなら、どんなノードにも存在しないからです.
  • 第三文第二語"do"
  • {
      "I": {
        "am": 0.666666667,
        "do": 0.333333333
      },
      "am": {
        "Sam.": 0.5,
        "Kevin.": 0.5
      },
      "Sam.": {
    
      },
      "Kevin.": {
    
      },
      "do": {
    
      }
    }
    
    さて、なぜ"am" became 0.666666667 and "do" 0.333333333 ?
    簡単な計算をしましょう.今、2つの可能な単語があります
    アフター"I" , "am" and "do" . したがって、値は0.5 to 0.5 .
    でも"am" ノードの後に来ることができる単語があります.カウントは2です
    "am"1 - (1 / (1 + 2)) . でも"do" does
    ないので、量を変更しません.それで"am" 'S量1 - (1 / (1 + 2)) = 0.666666667 , そして、あなたは推測することができます"do" is1 - 0.666666667 = 0.333333333 .

    文の作成


    今3つの単語文を作りたいとしましょう.
    だから我々は3ランダムな単語を選択しますが、彼らはすべきです
    どの単語が来ることができます!始めましょう!
    我々のcreatenデータは次のようになります.
    {
      "I": {
        "am": 0.666666667,
        "do": 0.333333333
      },
      "am": {
        "Sam.": 0.5,
        "Kevin.": 0.5
      },
      "Sam.": {
    
      },
      "Kevin.": {
    
      }
    }
    
    手順は以下の通りです.
  • ランダムノードスタートを選択します.
    uhmm、私たちの幸運なノードは.I !
  • I
  • 入るI ノード.可能な単語は以下の通りです.
  • am
  • do
  • さあ、リストを作成しましょう0.666666667 タイムズam ,
    and 0.333333333 タイムズdo. . 今すぐ幸運のノードを選択しましょう!
    私たちの幸運なノードは.do ! それはチャンスだ.
    I do
  • 入るdo ノード.可能な言葉は:何もない!
    今何をすべきかそれは私たちの文の終わりですか?だめ!
    再びランダムにノードを選択しましょう.
  • 私たちの幸運なノードは.Kevin. !
    I do Kevin.ここに3つの単語文があります.I do Kevin. .
    そして、我々のアルゴリズムは、このように続きます.
    すべての可能な文の数を数えたいならば
    2^len(data)
    
    それで、我々のデータがあるならば4 ユニークな言葉は、カウントされます2^4 = 16 文章.それだ!
    読書ありがとう!