問題タブ [tokenize]
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.
c++ - 文字列をトークン化し、C++ で区切り記号を含める
次のトークンを使用していますが、区切り文字を含める方法がわかりません。
sql - PL/SQL には Java と同等の StringTokenizer がありますか?
Java で区切られた文字列を簡単に解析するには、java.util.StringTokenizer を使用します。pl/sql で同じタイプのメカニズムが必要です。私はそれを書くことができましたが、それがすでに存在する場合は、それを使用したいと思います. pl/sql の実装を知っている人はいますか? いくつかの便利な代替手段はありますか?
character-encoding - 高速 ESP 文字の正規化
FAST ESP サーバーで検索アプリケーションを実行しています。今、私は文字の正規化でこの問題を抱えています。
欲しいのは「wurth」で検索して「würth」でヒットすることです。
私はesp/etc/tokenizer/tokenization.xmlで以下を設定しようとしました
しかしもちろん、これはすべての u を ü に変換しますが、これは役に立ちません。
これを正しい方法で構成するにはどうすればよいですか?
javascript - 本格的なレクサーなしで文字列をトークン化できる簡単な方法はありますか?
操車場アルゴリズムの実装を検討していますが、文字列をトークンに分割するための最良の方法を理解するための支援が必要です。
お気づきの方もいらっしゃると思いますが、アルゴリズムの最初のステップは「トークンの読み取り」です。これは、簡単なことではありません。トークンは、数値、演算子、および親で構成できます。
次のようなことをしている場合:
(5 + 1)
単純なstring.split()は、トークンの配列{"("、 "5"、 "+"、 "1"、 ")"}を提供します。
ただし、次のように複数桁の数字がある場合は、さらに複雑になります。
((2048 * 124)+ 42)
これで、単純なstring.split()はうまくいきません。複数桁の数字が問題です。
レクサーを作成できることは知っていますが、本格的なレクサーを作成せずにこれを行う方法はありますか?
私はこれをJavaScriptで実装しており、可能であればレクサーパスをたどる必要がないようにしたいと思います。「*」、「+」、「-」、「/」の演算子を整数とともに使用します。
tokenize - Smalltalk、改行文字
smalltalkの文字列の改行区切り文字を知っている人はいますか?
文字列を別々の行に分割しようとしていますが、smalltalkの改行文字が何であるかわかりません。
すなわち。
任意の文字または記号に基づいて行を分割できますが、改行デリマーが何であるかがわかりません。
これがカンマに基づいて文字列を分割する方法ですが、改行に基づいて分割することはできません。
python - 複数行コメントが終了していないトークン化エラーを処理する方法 (python 2.6)
次のサンプル コード:
以下が発火します。
この動作に関するいくつかの質問:
- ここで tokenize.TokenError をキャッチして「選択的に」無視する必要がありますか? または、準拠していない/不完全なコードからトークンを生成しようとするのをやめるべきですか? もしそうなら、どうやってそれを確認しますか?
- このエラー (または同様のエラー) は、終了していない docstring 以外の原因で発生する可能性がありますか?
java - Tokenizer、Stop Word の削除、Java でのステミング
何百もの単語の長い文字列を取り、IR システムで使用するためにストップ ワードと語幹を削除してトークン化するクラスまたはメソッドを探しています。
例えば:
「でっかい太った猫が、カンガルーに『君の一番おかしなやつ』って言った…」
トークナイザーは句読点を削除し、単語の を返しArrayList
ます
ストップワードリムーバーは、「the」、「to」などの単語を削除します
ステマーは各単語を「ルート」に減らします。たとえば、「おかしな」はおかしくなります
よろしくお願いします。
c - C の文字列トークン化関数の複雑さ
C をブラッシュアップするために、便利なライブラリ コードをいくつか書いています。テキスト ファイルの読み取りに関しては、面倒な作業のほとんどを行う便利なトークン化関数があると常に便利です (ループstrtok
は不便で危険です)。
この関数を書いたとき、その複雑さに驚かされました。実を言うと、バグ (特に割り当てエラーの場合のメモリ リーク) が含まれているとほぼ確信しています。コードは次のとおりです。
簡単な使い方は次のとおりです。
ああ、そしてstrdup
:
tokenize
関数のコードについて注意すべき点がいくつかあります。
strtok
には、入力文字列を上書きするという失礼な癖があります。ユーザーのデータを保存するには、入力の複製に対してのみ呼び出します。を使用して複製を取得しstrdup
ます。strdup
ただし、ANSI-C ではないため、ANSI-C を作成する必要がありましたトークンの数が事前にわからないため、
toks
配列は で動的に拡張されます。realloc
テスト用の初期サイズは 2 です。実際のコードでは、おそらくもっと大きな値に設定します。また、ユーザーに返され、ユーザーは使用後に割り当てを解除する必要があります。いずれの場合も、リソースをリークしないように細心の注意を払っています。たとえば、
realloc
NULL を返す場合、古いポインターは実行されません。古いポインターが解放され、関数が戻ります。返されたときにリソースがリークすることはありませんtokenize
(ユーザーに返された配列を使用後に割り当てを解除する必要がある名目上のケースを除きます)。- Aは、場合によっては適切な哲学
goto
に従って、より便利なクリーンアップ コードに使用されます(これは良い例です。IMHO)。goto
次の関数は、1 回の呼び出しで単純な割り当て解除を行うのに役立ちます。
SO の他のユーザーとこのコードについて話し合いたいと思います。何がもっとうまくできたでしょうか?そのようなトークナイザーに異なるインターフェイスをお勧めしますか? ユーザーからの割り当て解除の負担はどのように取り除かれますか? とにかくコードにメモリリークがありますか?
前もって感謝します
parsing - Scalaでのテキスト解析へのアプローチ
Scalaでコマンドを解析するアプリケーションを作成しています。コマンドの例は次のとおりです。
したがって、計画では、かなりスマートなパーサーが行を分割し、コマンド部分と文字列に時間への参照があるという事実を認識します。
一般的に、私はScalaでトークナイザーを作成する必要があります。だから私はこれのための私のオプションは何であるか疑問に思っています。私は正規表現に精通していますが、SQLのような検索機能も作成する予定です。
そして、正規表現は、バリエーションの多いコマンドを実装するのに柔軟性がないだろうと感じています。これは私にある種の文法を実装することを考えるように導きます。
Scalaでのこの点に関する私のオプションは何ですか?