問題タブ [stringdist]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - Rで似たような名前のグループを作成する方法は?
名前の選択がどれだけ似ているかに基づいて、グループ変数を作成したいと思います。stringdist パッケージを使用して距離の尺度を生成することから始めました。しかし、その出力情報を使用して変数によるグループを生成する方法がわかりません。hclust を見てきましたが、最終的にいくつのグループが必要かを知るために必要なクラスタリング関数を使用しているようですが、それはわかりません。私が始めるコードは以下の通りです:
次のような2つの列を持つデータフレームを見たい
グループは、使用する距離測定値によって明らかに若干異なる場合がありますが (上記の 2 つを提案しました)、おそらくどちらかを選択して実行します。
基本的に、必要なクラスターの数を知らなくても、距離行列からグループ変数を取得するにはどうすればよいですか?
r - ネストされた for ループよりも効率的な行列の入力方法
以下を達成するためのより効率的な方法はありますか?
注:compare_strings
実行しようとしている操作の種類を暗示するための擬似コードです。以下のコメントによると、 stringdist には function が付属しているため、質問の前の形式との混乱がありましたstringdistmatrix
。私のシナリオには、そのオプションがない関数が含まれているため、以下のコメントを反映するように質問が変更されました。
regex - r stringdist または levenshtein.distance で文字列を置き換えます
定義された観測タイプでキー付けされた、最大 100 万個の観測を含む大規模なデータセットがあります。データセット内には、不正な形式の観測タイプを持つ最大 900,000 の観測があり、50 の許容可能な観測タイプの最大 850 (正しくない) バリエーションがあります。
gsub を使用することは、ハンド シャベルで地下室を掘るのと似ています。私の場合、r と複雑な正規表現に慣れていないので、ハンドルが壊れたシャベルを使用します。簡単なフォールバック (私にとって) は、受け入れられた観察の種類ごとに 1 つの gsub ステートメントを記述することですが、50 のステートメントが必要なため、不必要に困難に思えます。
問題のあるエントリを最短距離の文字列で使用levenshtein.distance
または置き換えたいと思います。(length(x)) の結果を各 y[i] に渡そうとしているため、 stringdist
実行は機能しません。z <- for (i in length(y)) { z[i] = levenshtein.distance(y[i], x)}
最小距離で結果を返すにはどうすればよいですか? function(x) x[2]
シリーズで2番目の結果を返すのを見てきましたが、どのように最低を取得するのですか?
regex - R は完全な文字列で略語を探します
R で、ある文字列が別の文字列の省略形であるかどうかを判断する効率的な方法を探しています。私が取っている基本的なアプローチは、短い文字列の文字が長い文字列で同じ順序で表示されるかどうかを確認することです。たとえば、短い文字列が「abv」で長い文字列が「abbreviation」の場合、肯定的な結果が必要になりますが、短い文字列が「avb」の場合、否定的な結果が必要になります。機能する機能をまとめましたが、それはかなり洗練されていないソリューションのようで、正規表現の魔法が欠けているのではないかと思いました。R の「stringdist」関数も調べましたが、特にこれを行っているように見えるものは見つかりませんでした。これが私の機能です:
助けてくれてありがとう!
r - R での stringdist の使用
次の言葉があるとしましょう。
これらの 3 つの単語が同一人物を指していることはほぼ明らかです。次のコードを持つ:
qgram
この例では、それがうまく機能することは明らかです。しかし、それはその場合だけです。私の質問は、これら2つの方法をどのように組み合わせることができますか?
jw
より良い結果が得られますが、逆の単語を「キャッチ」できません(私の場合、名前と姓と姓)。何かアドバイス?
json - ツイート間の Jaccard 距離
現在、データセット内のツイート間の Jaccard 距離を測定しようとしています
これがデータセットの場所です
http://www3.nd.edu/~dwang5/courses/spring15/assignments/A2/Tweets.json
距離を測定するためにいくつかのことを試しました
これは私がこれまでに持っているものです
リンクされたデータセットを Tweets.json というファイルに保存しました
次に、json_alldata を tweet.features に変換し、geo 列を取り除きました。
これらは、最初の2つのツイートがどのように見えるかです
最初に試したのstringdist
は、stringdist ライブラリの下にあるメソッドを使用することでした
それを実行すると、
[1] 0.1621622
しかし、それが正しいかどうかはわかりません。A 交差点 B = 23、A ユニオン B = 25。Jaccard 距離は、A 交差点 B/A ユニオン B です。私の計算では、Jaccard 距離は 0.92 になるはずです。
だから私はセットでそれを行うことができると考えました. 交点と和を計算して割るだけ
これは私が試したものです
交差点を作ろうとすると、次のようになります: The output is just list()
ユニオンを試すと、次のようになります。
ユニオン(A1、A2)
これは、単語を単一のセットにグループ化していないようです。
ユニオンで交差点を分割できると思いました。しかし、各セットの数または単語を数え、計算を行うプログラムが必要になると思います。
言うまでもなく、私は少し立ち往生しており、正しい軌道に乗っているかどうか確信が持てません。
どんな助けでも大歓迎です。ありがとうございました。