問題タブ [text-processing]
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.
regex - Awk/etc.: ファイルからマッチを抽出
<li>
HTML ファイルがあり、と</li>
タグの間のテキストを抽出したいと考えています。もちろん、これを行うには無数の方法がありますが、単純なシェル コマンドでこれを行う習慣を身につけると便利だと思いました。
問題は、これはすべてを印刷することですが、私は単純に括弧内に一致を印刷したいのですが([^>]+)
、 awk がこれをサポートしていないか、私が無能です。後者の可能性が高いようです。提供された正規表現をファイルに適用し、指定された一致のみを抽出したい場合、どのようにしますか? awk
私はすでに他の方法を半ダース知っていますが、このラウンドに勝たせる気がしません;)
編集: データは適切に構造化されていないため、位置一致 ( $1, $2, etc.
) を使用することはできません。
database - フォルダ検索アルゴリズム
これがここでよく聞かれる質問なのか、それともこれに対する回答が得られるのかはわかりませんが、画像を含むフォルダー構造から DB リンクレコードを生成する疑似コードアプローチを探していますファイル。
次のような構造のフォルダーのセットがあります。
本質的には、1999 年から始まる年ごとの車両の可能な画像を表します。
メーカーとモデル (例: メーカー: アルファ ロメオ、モデル: 145) には、さまざまなトリムやバージョンがあります。各トリムまたはバージョンは、同じように見えるが、燃料の種類またはエンジン容量に違いがある多くの車両に見られる場合があります。
重複を保存するために、上記のフォルダー構造はデフォルトのフォルダーを使用します...そして、2000年以降のデフォルトバージョンの画像が表示されます。各バージョンのリンク テーブルを作成する必要があります - 独自のオーバーライド イメージがあるかどうか、またはデフォルト バージョンを使用するかどうかに基づいて...
たとえば、version_1 にはイメージ ファイルがないため、2000 年から 2009 年までのデフォルト イメージへのリンクを作成する必要があります。
一方、バージョン 2 は 2000 年にデフォルトのイメージを使用して開始しますが、最初は 2001 ~ 2002 年、次に 2003 ~ 2009 年の 2 つの新しいセットを使用します。したがって、必要なリンクのリストは...
(デフォルトは単なるプレースホルダーであり、リンクは必要ありません。)
現時点では、フォルダーを調べてアレイを構築し、最後に脂肪をトリミングしています。ある種のテキスト処理アプローチを使用して、ショートカットがあるかどうか疑問に思っていましたか? 約 45,000 のフォルダーがあり、そのほとんどは空です :-)
java - 元の位置オフセットを維持しながらのテキスト操作
Java で大きな文字列を操作する必要があります (削除された文字を削除して再度追加し、文字を移動します) が、元の位置オフセットを覚えておきたいです。たとえば、「コンピューター」という単語は、元のテキストのオフセット 133 から始まり、244 の位置に移動します。元は 133 の位置にあったという情報が必要です。最も醜い (そしてリソースを大量に消費する) 解決策は、キャラクターの元の位置とその位置の変更。確かに、より優れたソリューションがありますが、より複雑なソリューションもあります。私の問題を解決する優れたテキスト操作ライブラリはありますか? 車輪の再発明はしたくありません。
よろしく、カイ
vim - Vimですべてのテキストを小文字に変換する方法
Vimのすべてのテキストを小文字に変換するにはどうすればよいですか?それも可能ですか?
c - ソースファイルから単一の関数を抽出する方法
私は、Linux カーネルの非常に長く複雑な機能に関する小規模な学術研究に取り組んでいます。600 行または 800 行の長さの関数を記述する正当な理由があるかどうかを把握しようとしています。
その目的のために、.c ファイルから関数を抽出できるツールを見つけて、関数に対していくつかの自動テストを実行できるようにしたいと考えています。
たとえばcifs_parse_mount_options()
、 file 内に関数がある場合connect.c
、おおよそ次のように機能するソリューションを探しています。
関数の 523 行のコード (!) を左中括弧から右中括弧まで返します。
もちろん、それgcc
を行うのが好きな既存のソフトウェアパッケージを操作する方法も、最も役に立ちます。
ありがとう、
ウディ
EDIT:C関数プロトタイプ宣言を引き出すための正規表現への答えは?正規表現による関数宣言の一致は簡単ではないことを確信しました。
text-processing - Google ブックスの人気のパッセージ機能はどのように開発されましたか?
Google が人気のパッセージ ブロック機能をどのように作成したかについて、誰かが理解しているか、知っているか、または包括的な文献やソース コードを教えてくれるかどうか知りたいです。ただし、同じことができる他のアプリケーションを知っている場合は、回答も投稿してください。
私が何について書いているのかわからない場合は、人気のあるパッセージの例へのリンクを参照してください。書籍 Modeling the legal decision process for information technology applications ... の概要を見ると、Georgios N. Yannopoulos によって次のように表示されます。
人気のパッセージ
...方向、不定。想定外のケースが発生したときに提起される問題については、予期していなかったため、解決していません。公園のある程度の平和が、これらのものを使用することに喜びや興味を持っている子供たちのために犠牲にされるか、それから守られるべきか. 想定外の事態が発生した場合、私たちは問題に直面し、競合する利益の中から最も満足できる方法を選択することで問題を解決することができます. 実行中...ページ86
これは、「機械的」法学に適した世界です。明らかに、この世界は私たちの世界ではありません。人間の立法者は、将来もたらされる可能性のある状況のすべての可能な組み合わせについて、そのような知識を持つことはできません。この予測不可能性は、目標の相対的な不確定性をもたらします。一般的な行動規則 (例えば、公園に車両を持ち込んではならないという規則) を大胆に構築するとき、この文脈で使用される言語は、すべてが満たさなければならない必要条件を修正します... 86 ページ
集中的なパターン マッチング プロセスである必要があります。n-gram モデル、テキスト コーパス、剽窃の自動検出しか思い浮かびません。しかし、n-gram はシーケンス内の次の項目を予測するための確率モデルであり、(私の知る限り) テキスト コーパスは手動で作成されます。そして、この特定の場合、人気のある文章では、大量の単語が存在する可能性があります.
私は本当に迷っています。そのような機能を作成したい場合、どのように、またはどこから始めればよいですか? また、この内容に最適なプログラミング言語を回答に含めてください: F# またはその他の関数型言語、PERL、Python、Java... (私自身が F# ファンになりつつあります)
PS: 誰かが自動剽窃検出タグを含めてくれませんか?
algorithm - 単語の頻度を使用して「トップ リスト」を生成するアルゴリズム
人間が生成したコンテンツの膨大なコレクションがあります。最も頻繁に出現する単語または語句を見つけたい。これを行う効率的な方法は何ですか?
nlp - Project Gutenbergのテキストからヘッダー/フッターを削除するにはどうすればよいですか?
言語学習プロジェクトのコーパスとして使用するために、プロジェクトグーテンベルクのテキストからライセンスを取り除くためにさまざまな方法を試しましたが、教師なしで信頼できるアプローチを思い付くことができないようです。私がこれまでに思いついた最高のヒューリスティックは、最初の28行と最後の398行を削除することです。これは、多数のテキストで機能しました。テキストを自動的に削除する方法に関する提案(多くのテキストで非常に似ていますが、それぞれの場合にわずかな違いがあり、いくつかの異なるテンプレートもあります)、およびそれを確認する方法に関する提案テキストは正確に削除されているので、非常に便利です。
sed - ファイルの一部を最後まで移動する方法
rpmは、最初のオプションとして、新しくインストールされたカーネルを自動的に配置します。しかし、私はそれを最後のものとして、つまりファイルの最後に移動したいと思います。
Grub構成ファイルは次のようになります。
私の目標は、最初のオプション(217.2.3)を終了することです。今、私はそれを削除する方法を理解しています:
pコマンドは現在の行のみを出力します(貼り付けを意味するvimの場合とは異なります)。
ファイルのこの部分を自動的に最後まで移動する方法について何かアイデアはありますか?
algorithm - 辞書の単語を見つける
私は2つか3つの英語の単語の組み合わせである複合文字列をたくさん持っています。
私はこれらの個々の英語の単語をそのような複合文字列から分離する必要があります。私の辞書は約100000語で構成されます。
そのような複合文字列から個々の英語の単語を分離することができる最も効率的な方法は何でしょうか。