問題タブ [nlp]
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.
algorithm - 引数の数が定義されていない式の解析
自作言語の文字列を一種のツリーに解析しようとしています。
結果は次のようになります。
#、*、-> は記号です。a、b1 などはテキストです。
その瞬間から、式を評価するためのrpnメソッドしか知らないので、現在の解決策は次のとおりです。各シンボルの後に 1 つのテキスト トークンのみを許可する場合、最初に式を RPN 表記 (b = b1 b2; d = d1 d2; f = f1 f2) に簡単に変換し、ここから解析できます。
abc -> * de -> * # fg * #
ただし、テキスト トークンとその他のものをマージすると、問題が発生するようです。私のアイデアは、マーカー トークン (M) を作成することだったので、RPN は次のようになります。
a M b2 b1 M c -> * M d2 d1 M e -> * # f2 f1 M g * #
これも解析可能で、問題を解決しているようです。
それは言った:
- そのようなことを経験したことがあり、それが将来の実行可能な解決策である、または実行できないと言える人はいますか?
- 演算子のアリティが定義されていない式を解析するためのより良い方法はありますか?
- 良いリソースを教えてもらえますか?
ノート。はい、私はこの例が Lisp のプレフィックス表記法に非常によく似ていることを知っています。また、いくつかのブラケットを追加する方法があるかもしれませんが、ここでの経験はありません。ただし、ソース テキストには人為的なブラケットを含めてはいけません。また、# a * b -> [if value1 = value2] c -> d のような潜在的な中置 mixin についてどうすればよいかわかりません。
助けてくれてありがとう。
編集:私が探しているのは、可変数の引数を持つ後置表記のソースのようです。
algorithm - 製品のリストを分類するためのアルゴリズム?
多かれ少なかれ同じ製品を表すリストがあります。たとえば、以下のリストでは、これらはすべてSeagateハードドライブです。
- Seagateハードドライブ500Go
- ラップトップ用のSeagateハードドライブ120Go
- Seagate Barracuda 7200.12 ST3500418AS 500GB 7200 RPM SATA 3.0Gb/sハードドライブ
- Seagateの新しくて光沢のある500Goハードドライブ
- Seagate Barracuda 7200.12
- Seagate FreeAgentDesk500GB外付けハードドライブSilver7200RPMUSB2.0 Retail
人間の場合、ハードドライブ3と5は同じです。もう少し進んで、製品1、3、4、および5が同じであり、他のカテゴリーに製品2および6を入れると仮定することができます。
分類したい製品の膨大なリストがあります。誰かがそのようなことをするための最良のアルゴリズムが何であるかについての考えを持っていますか?助言がありますか?
私はベイズ分類器のことを考えていますが、それが最良の選択であるかどうかはわかりません。どんな助けでもいただければ幸いです!
ありがとう。
text - 前のファイルと次のファイルの重複した「スタブ」を含む多くのテキスト ファイルを比較し、重複したテキストを自動的に削除します
学術雑誌の記事を含む多数のテキスト ファイル (1000 以上) があります。残念ながら、各記事のファイルには、前の記事の終わり (最初) と次の記事の最初 (最後) の「スタブ」も含まれています。
スタブは重複データを構成するため、記事の頻度分析を実行する準備として、これらのスタブを削除する必要があります。
すべての場合において、各記事の開始と終了を示す単純なフィールドはありません。ただし、重複したテキストは、どちらの場合も同じ行に同じ形式で表示されているようです。
各ファイルを次のファイルと比較し、重複テキストの 1 つのコピーを削除するスクリプトは完璧です。これは、プログラミングの際にはかなり一般的な問題のように思われるので、これを行うものを見つけることができなかったことに驚いています.
ファイル名は順番にソートされるため、各ファイルを次のファイルと順番に比較するスクリプトが機能するはずです。例えば
181 ページから始まる記事と 186 ページから始まる記事の 2 つの記事があります。これらの記事はどちらも以下に含まれています。
[ http://drop.io/fdsayre][1]に 2 つのボリュームのテスト データがあります。
注: 私は、心理学の歴史におけるプロジェクトの古いジャーナル記事の内容分析を行っている学者です。私はプログラマーではありませんが、Linux で 10 年以上の経験があり、通常は作業を進めていくうちに理解できます。
ご協力いただきありがとうございます
ファイル名: bul_9_5_181.txt
シンセシア
ISI
ポルトガル語の単語の大部分は、黒い物または黒に関連する考えを意味します。確かに、この関連性は真の共感覚ではありませんが、著者は、これらの論理的かつ自発的な関連性と、有色オーディションの真のケースとの間の程度の問題にすぎないと考えています。参考文献
DOWNEY, JUNE E. 着色された味覚の事例。アメール。J. of Psycho!., 1911, 22, S28-539MEDEIROS-E-ALBUQUERQUE. Sur un phenomene de synopsie presente par des millions de sujets. / . デサイコ。ノルムらの道、1911年、8、147-151。MYERS、CS 共感覚のケース。ブリット。J. of Psychol.、1911、4、228-238。
感情現象 — ミシガン大学ジョン F. シェパード教授による実験
ライプツィヒの研究所からは、1 年の間に 3 つの論文が発表されました。Drozynski (2) は、呼吸障害が関与している可能性があるため、感情を伴う有機的反応の研究に味覚刺激と嗅覚刺激を使用することに反対しています。彼はリズミカルな聴覚刺激を使用し、さまざまな速度でさまざまなグループに分けて与えられると、各被験者に特徴的な感情が伴うことを発見しました. 彼は胸の呼吸を記録し、血圧計と脈波計から曲線を描きます。各実験は通常の記録から始まり、次に刺激が与えられ、その後にコントラスト刺激が続きました。最後に、別の法線が取られました。呼吸の長さと深さを測定し(タイムラインは記録されていません)、呼気の長さと吸気の長さの関係を決定しました。脈拍の長さと高さも測定されました。表形式の要約は、著者が各タイプの感情の反応期間中に各量が増加または減少したことを発見した回数を示しています。与えられたリズムに伴う感情状態は常に複雑ですが、その結果は支配的であると思われる次元に言及されます。記録から再現されているのは、正常期と反応期から切り離されたわずかな抜粋のみです。著者は、興奮が呼吸の速度と深さ、吸気と呼気の比率、および脈拍の速度とサイズを増加させると述べています. アームボリュームにうねりがあります。効果が静かである限り、速度と深さの減少を引き起こします。表形式の要約は、著者が各タイプの感情の反応期間中に各量が増加または減少したことを発見した回数を示しています。与えられたリズムに伴う感情状態は常に複雑ですが、その結果は支配的であると思われる次元に言及されます。記録から再現されているのは、正常期と反応期から切り離されたわずかな抜粋のみです。著者は、興奮が呼吸の速度と深さ、吸気と呼気の比率、および脈拍の速度とサイズを増加させると述べています. アームボリュームにうねりがあります。効果が静かである限り、速度と深さの減少を引き起こします。表形式の要約は、著者が各タイプの感情の反応期間中に各量が増加または減少したことを発見した回数を示しています。与えられたリズムに伴う感情状態は常に複雑ですが、その結果は支配的であると思われる次元に言及されます。記録から再現されているのは、正常期と反応期から切り離されたわずかな抜粋のみです。著者は、興奮が呼吸の速度と深さ、吸気と呼気の比率、および脈拍の速度とサイズを増加させると述べています. アームボリュームにうねりがあります。効果が静かである限り、速度と深さの減少を引き起こします。しかし、その結果は、支配的であると思われる次元に言及されます。記録から再現されているのは、正常期と反応期から切り離されたわずかな抜粋のみです。著者は、興奮が呼吸の速度と深さ、吸気と呼気の比率、および脈拍の速度とサイズを増加させると述べています. アームボリュームにうねりがあります。効果が静かである限り、速度と深さの減少を引き起こします。しかし、その結果は、支配的であると思われる次元に言及されます。記録から再現されているのは、正常期と反応期から切り離されたわずかな抜粋のみです。著者は、興奮が呼吸の速度と深さ、吸気と呼気の比率、および脈拍の速度とサイズを増加させると述べています. アームボリュームにうねりがあります。効果が静かである限り、速度と深さの減少を引き起こします。
182
ジョン・F・シェパード
呼吸、吸気呼気比、脈拍数とサイズ。アームボリュームは、呼吸波とともに上昇する傾向を示します。協調性が示す
nlp - Crawling The Internet
I want to crawl for specific things. Specifically events that are taking place like concerts, movies, art gallery openings, etc, etc. Anything that one might spend time going to.
How do I implement a crawler?
I have heard of Grub (grub.org -> Wikia) and Heritix (http://crawler.archive.org/)
Are there others?
What opinions does everyone have?
-Jason
php - 文章の単語を構成された用語に結合する方法は?
たとえば、私は文を持っています
John Doe は昨年、ニューヨークに引っ越しました。
ここで、文を単一の単語に分割すると、次のようになります。
array('John', 'Doe', 'moved', 'to', 'New', 'York', 'last', 'year')
それはとても簡単です。しかし、その後、単一の単語を組み合わせて、構成されたすべての用語を取得したいと考えています。構成された用語が意味をなさない場合はそうではありませんが、それらすべてを取得したいと考えています。その操作の結果は次のようになります。
ジョン、ドウ、ジョン・ドウ、引っ越し、ドウが引っ越し、ジョン・ドウが引っ越し、に引っ越し、ドウが引っ越し...
単語は、k 個の部分に制限される用語に構成する必要があります。上記の例では、制限は 3 です。したがって、用語には最大で 3 つの単語を含めることができます。
問題: コンポジションを PHP でコーディングするにはどうすればよいでしょうか? 入力として文を取得し、出力としてすべての用語を含む配列を与える関数があれば、それは素晴らしいことです。
あなたが私を助けてくれることを願っています。前もって感謝します!
algorithm - テキストを短くし、重要な文のみを保持する
ドイツのウェブサイトnandoo.netは、ニュース記事を短縮する可能性を提供しています。スライダーでパーセンテージ値を変更すると、テキストが変更され、一部の文が省略されます。
あなたはここでそれが実際に動いているのを見ることができます:
ニュース記事は左側にあり、タグがマークされています。スライダーは2列目の上部にあります。スライダーを左に動かすほど、テキストは短くなります。
どうすればそのようなものを提供できますか?それを達成するために使用できるアルゴリズムはありますか?
私の考えは、彼らのアルゴリズムが文中のタグと名詞の数を数えるというものでした。次に、タグ/名詞の数が最も少ない文が省略されます。
それは本当でしょうか?それとも別のアイデアがありますか?
あなたが私を助けてくれることを願っています。前もって感謝します!
sql - SQLでの単純ベイズ計算
単純ベイズを使用して、ドキュメントを比較的多数のクラスに分類したいと考えています。私は、エンティティが正しく検証された記事とその記事が類似しているかどうかに基づいて、記事内のエンティティ名の言及が本当にそのエンティティであるかどうかを確認しようとしています。
たとえば、ある記事で「General Motors」というテキストを見つけたとします。記事とその中で言及されている正しいエンティティを含む一連のデータがあります。したがって、新しい記事で言及されている「ゼネラルモーターズ」が見つかった場合、既知の本物を含む以前のデータの記事のクラスに該当する必要があります。 「ゼネラルモーターズ」に言及するのと、そのエンティティに言及していない記事のクラスとの比較は?
(すべてのエンティティのクラスを作成して、すべての新しい記事を可能なすべてのクラスに分類しようとしているわけではありません。エンティティ名のもっともらしい言及を見つけるためのヒューリスティックな方法が既にあり、限られた数の妥当性を検証したいだけです。メソッドが既に検出した記事ごとのエンティティ名の言及)。
潜在的なクラスと記事の数が非常に多く、単純なベイズが比較的単純であることを考えると、SQL ですべてを実行したかったのですが、スコアリング クエリに問題があります...
これが私がこれまでに持っているものです:
マークされたデータ内の各記事は個別の単語に分割され、各エンティティの各記事について、すべての単語が に追加され、each_entity_word
および/またはその単語がword_count
インクリメントされ、doc_count
インクリメントされます。これは、その記事で言及されている既知のエンティティごとに繰り返されます。entity_word_sum
entity_id
各単語に含まれるエンティティに関係なく、記事ごとtotal_entity_word
total_entity_word_sum
に同様にインクリメントされます。
- P(word|any document) は、その単語
の
word_count
inに等しい必要があり ますtotal_entity_word
doc_count
total_entity_sum
- P(単語|ドキュメントは
エンティティxに言及
word_count
し ています)each_entity_word
entity_id
doc_count
each_entity_sum
entity_id
- P(単語|ドキュメントはエンティティxについて言及していません) は、(そのエンティティのinからその単語のinを引いたもの) 以上 ( inのそのエンティティの inを引いたもの)に等しくなければなりません
word_count
total_entity_word
word_count
each_entity_word
doc_count
total_entity_sum
doc_count
each_entity_sum
- P(ドキュメントはエンティティx
doc_count
に言及しています) は、each_entity_sum
そのエンティティ ID に対して等しい必要がありますdoc_count
。total_entity_word
- P(ドキュメントはエンティティxについて言及していません) は 1 マイナス ( xのエンティティ ID に対してin )
doc_count
に等しい必要があります。each_entity_sum
doc_count
total_entity_word
入ってくる新しい記事の場合、それを単語に分割し、または のいずれeach_entity_word
かに対して ('I'、'want'、'to'、'use'...) の単語を選択するだけtotal_entity_word
です。私が(mysql)で作業しているdbプラットフォームでは、IN句は比較的適切に最適化されています。
また、SQLにはproduct()集計関数がないため、もちろん、sum(log(x))またはexp(sum(log(x)))を実行して、product(x)と同等のものを取得できます。
したがって、新しい記事を取得し、それを個別の単語に分割し、それらの単語を大きな IN() 句とテストする潜在的なエンティティ ID に入れる場合、記事がそのエンティティに該当する単純なベイジアン確率を取得するにはどうすればよいですか? SQLのidのクラス?
編集:
#1を試してください: