• ベストアンサー

5TBのテキストから任意の文字列のoffset取得

mokokomiの回答

  • ベストアンサー
  • mokokomi
  • ベストアンサー率71% (5/7)
回答No.4

> strpos等の関数を用いず... というのがよくわかりませんが。 大まかな方針としては、以下のことがあてはまりそうです: ● 一回限りの検索で、かつ時間がかかっても良い => grepで工夫すれば事足りそうです。 ● そうではなく、なんども検索する処理で、リアルタイムでそれなりにスループットが必要 => 全文検索エンジンを作る or 利用する ● バッチ処理でいい => HadoopとかのMapReduceを使う。 具体的な事は検索してみてください(丸投げすいません)。 全文検索エンジンについては N-Gram、形態素解析、転置インデックス、SuffixArray などのキーワードで検索するとよいかもです。

szkshi
質問者

お礼

ありがとうございます。 いろいろ自分でも考えてみたのですが、面接官はmokokomiさんが上げてくださったような答えを期待していたのかもしれません。 明確な答えではなく、どうやって解決するか・できるかの能力を見たかったではないかと思ってきました。 具体名までお教えいただきありがとうございます。 調べてみます。

関連するQ&A

  • 画面上の任意のピクセルを取得したい

    C#でプログラミングしています。 画面上の任意のピクセル(色情報)を取得したいのですが、 この言語で何か良い方法はないでしょうか? 例えば、WINAPIでGetPixelなどを使えばできそうな気がしますが、 それをC#でどうやって利用すればいいのか分からないので それも合わせてお答え頂けたらうれしいです。

  • クリックで任意の値を取得するには?

    1ヶ月表示のカレンダーを作っております。 今月のカレンダーで例えると現在の仕様はそれぞれの日付に20091101~20091130のリンクを張っています。 hoge/20091119/のページに飛ぶような感じです。 飛んだページではパラメータを取得し日付によりdbからデータを取得するのですがこれをパラメータではなく クリックしただけで任意の値を取得しセッションに格納し飛んだページに渡せないものかと思っております。 可能であれば方法を教えて頂けないでしょうか?宜しくお願い致します。

    • 締切済み
    • PHP
  • Perl webのテキストボックスに入力し送信取得

    Perl初学者です。Perlでのインターネット通信に興味があります。 webサイトのテキストボックスにテキストを入力し、それを送信・結果を取得するためのプログラムを教えてください! (例) 単語を英訳するプログラムが作りたかったので、”http://ejje.weblio.jp/”の検索ボックスに単語を入れて送信し、帰ってきたURLのhtmlを取得する、といった感じ? 少し勉強したLWPモジュールを使って頂けると嬉しいです。 もちろん、こっちの方が効率がいいよ、といった方法があれば是非教えてください! よろしくお願いします。

    • ベストアンサー
    • Perl
  • 文字列内の数値を検索に使う場合の手法

    検索の仕方で質問があります。 WinXPでの開発です。 データベースはOracle、開発ソフトはC++Builder5です。 以下のようなテーブルとデータがあります。 TB2,TB3のidは必ずTB1に存在します。 TB3のdataには、カンマ区切りの文字列が入っています。 dataのカンマ区切りの内容は "コード,サイズ1,サイズ2" となっています。 実際はこのような単純なデータではないので、カラム分けするのは 設計時に難しかったようです。 ------------------------------ CREATE TABLE TB1 ( id number, name varchar2(20) ); 1 sample1 2 sample2 3 sample3 ------------------------------ CREATE TABLE TB2 ( id number, keyno number ); 1 100 3 200 ------------------------------ CREATE TABLE TB3 ( id number, data char(200) ); 1 aaa,0.1,0.2 2 bbb,0.3,0.4 ------------------------------ たとえば TB2.keynoが100であり、TB3.dataのサイズ1が0.1のデータのTB1.nameを取りだす という場合、どのようなSQL文になるのでしょうか? TB3のデータは読み込んだ後に一旦文字列を分解して コード、サイズ1、サイズ2を取得しないことには検索出来ないと思います。 一番高速な手法はどうなるでしょうか? トリガーを使って、作業用のテーブル作ってやればいい、 みたいなことを言われたのですが、トリガーは違うのでは?と思いながら 手法を悩んでいます。 ローカルデータベースのようなファイルを使ってやる方法になるのでしょうか? アドバイスをお願いします。

  • web上のhtmlファイルから文字データを取得するには

    c言語を勉強中の初心者です、 自分が今作りたいプログラムはweb上のhtmlにある文字データを取得し、 整理し、プログラム内で表示するような物ですが、どの本を読んでもweb上からデータを取得する方法が紹介されていません、(見つけられないだけかもしれませんが…) 例えば、yahooの株情報からデータを取得するソフトなんてのはよくありますよね? こういった方法は何か凄く特殊なのでしょうか? 一般的にこういった事をプログラミング用語で何と呼ぶのかすらわからないので、検索で調べようがありません… ただweb上のhtmlファイルから文字列を取得したいだけです、 コードの例などを紹介している書籍やwebページを教えてください よろしくお願いします。

  • 0を含んだ文字列の長さ(バイト数)の求め方

    環境:VC2005 WinAPI32 C言語 SDK 上記の環境でプログラミングをしています。 よろしくお願いいたします。 char str[256]=""; strcat(str, "ABC"); str[4]=0; strcat(str, "DEF"); たとえば上記のようなプログラムで、 str中のバイト数(文字列長?)を求めたいと思っています。 strの中身は [A][B][C][0][D][E][F][0][0][0]...[0]となっていますが、 このとき、7という値を取得したいのですが、何か効率的な方法はありますでしょうか・・。

  • マクロである文字以降の文字列を取得するには?

    2枚のシートの一部ずつを条件に合わせ取り入れ新シートを作るマクロを作っています。 そこで1つ問題な列があります。 D列の各セルには「,」で区切られて2つのデータが入っています。 123 , 456 55 , 67 8 , 1 678 , 9      の様な形です。 「,」の両側にはスペースが入っています。 このうちの「,」の右側の数値を変数に入れたいんですが、文字数が行によって違います。 右側がスペースを含めて3文字に決まっているなら、   変数 = Right(Cells(i, 4), 3) の様な感じになりますが、一桁から三桁まであります。 こういう場合、「,」の右側を取得する関数とか有るんでしょうか? それとも他の方法を取るんでしょうか?

  • 巨大なテキストの最終行を取得するには

    perl v5.10.0 built for i386-linux-thread-multi OS: Fedora 9 (Linux localhost.localdomain 2.6.25.11-97.fc9.i686 #1 SMP Mon Jul 21 01:31:09 EDT 2008 i686 athlon i386 GNU/Linux) 巨大なテキストファイルの最終行を効率良く取得する方法を探しています。 検索を駆使して 6 日 6 晩試行錯誤したのですが、遂に見付けられなかった為、此所で質問させて頂きます。 私が知っている方法は以下の 3 つですが、何れも環境に依存するか、或いは効率が悪い等の理由で不完全です。 ---------------- #!/usr/bin/perl my $filename = './47GiB.txt'; my $file; # 1. print `tail -n 1 $filename`; # 2. open $file, $filename; print +(<$file>)[- 1]; # print pop @{[<$file>]}; close $file; # 3. open $file, $filename; my $pos = 0; while (<$file>) { $pos = tell $file unless eof $file; } seek $file, $pos, 0; print <$file>; close $file; ---------------- tail コマンドの様に、瞬時に最終行を読み出す方法は無いのでしょうか ? 御回答宜しくお願いします。

    • ベストアンサー
    • Perl
  • 配列のから一致する文字列を検索して1行下の数値を取得する方法

    どうもはじめまして。 どなたかperlの詳しい方、アドバイスをいただけないでしょうか。。 タイトルの通り配列の中から一致する文字列を検索して 1行下の数値を取得する方法が知りたいです。 簡単に言えば、、 ・キーワード解析のページにアクセスし、結果HTMLソースを取得します  ※ここまではできてます ・取得したHTMLソースからキーワードの検索回数を抜き出したいのですが、下記のようなソースになっています。 ■HTMLソース 一部抜粋 ---- <タグ>google で 「ほげ」 を検索した結果<タグ> <タグ> 35,233回<タグ> <タグ>google で 「ほげ」 +αを検索した結果<タグ> <タグ> 5,095回<タグ>         ・         ・ αの部分はアンド検索などで一緒に検索された文字を示す ---- 抜き出したいのは「ほげ」のみの検索回数 35,233 の値です。 この値をどのように取得してよいか、効率的な方法が思い浮かびません。 どなたかアドバイスいただけないでしょうか、よろしくお願い致します。 m(_ _ )m

  • Perlの文字列削除とcsv出力の方法について

    現在、Perlを用いてtxtファイルから必要なデータだけを取り出し、それをcsv ファイルに出力したいと考えております。 Perlはほとんど触ったことがなく、色々と勉強しながら行っているのですが、期 日が迫っているという事情もあり質問させていただきます。 txtファイルには以下のような文が1000行ほどあります。 *○ △ /△/△/△/△/○.txt, ○|○): ○ ○,△:任意の数字、または文字列です。 この内、"○"のものだけを一つ一つ分けてcsvに出力したいのです。 つまり○は4つありますが、出力する際は1つ目の"○"を1行目に、2つ目の"○"を2行 目にといった形にしたいです。 そして、それが1000列分あるということになります。 上手く△のものだけを除外し、○だけを抽出する方法はあるでしょうか? どなたかよい方法をご存知のかたいらっしゃいましたら、教えていただけると幸 いです。 エクセルで行うということも考えましたが、htmlファイルが入力ファイルとなる可能性もあるためPerlで行うことにしました。

    • ベストアンサー
    • Perl