JP2016143200A - 符号化プログラム、符号化方法および符号化装置 - Google Patents

符号化プログラム、符号化方法および符号化装置 Download PDF

Info

Publication number
JP2016143200A
JP2016143200A JP2015017852A JP2015017852A JP2016143200A JP 2016143200 A JP2016143200 A JP 2016143200A JP 2015017852 A JP2015017852 A JP 2015017852A JP 2015017852 A JP2015017852 A JP 2015017852A JP 2016143200 A JP2016143200 A JP 2016143200A
Authority
JP
Japan
Prior art keywords
date
time
code
character string
notation
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015017852A
Other languages
English (en)
Other versions
JP6507682B2 (ja
Inventor
片岡 正弘
Masahiro Kataoka
正弘 片岡
利浩 西村
Toshihiro Nishimura
利浩 西村
泰裕 鈴木
Yasuhiro Suzuki
泰裕 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2015017852A priority Critical patent/JP6507682B2/ja
Priority to US15/010,735 priority patent/US9419649B1/en
Publication of JP2016143200A publication Critical patent/JP2016143200A/ja
Application granted granted Critical
Publication of JP6507682B2 publication Critical patent/JP6507682B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/107Computer-aided management of electronic mailing [e-mailing]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Resources & Organizations (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Hardware Design (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】検索対象のテキストデータに変更を加えることなく、異なる日時表現の文字列をまとめて検索できる符号化プログラム、符号化方法および符号化装置を提供する。【解決手段】符号化装置は、入力テキストデータから少なくとも日付または時刻を表記する日時表記文字列を検索する。符号化装置は、検索された日時表記文字列の検索該当に応じて、前記日時表記文字列を特定の日時表記フォーマットに変換した正規化日時表記および前記日時表記文字列を識別する識別符号を含む変換日時符号を生成する。符号化装置は、生成された前記変換日時符号および前記日時表記文字列を対応づけた変換情報に基づき、入力テキストデータを変換し出力する。【選択図】図1

Description

本発明は、符号化プログラム、符号化方法および符号化装置に関する。
日付や時刻を表記する日時表記には、複数の表記形式がある。例えば、日時表記には、基準となる日時から相対的に指定する日時を示した相対日時表記と、絶対的に指定する日時を示した絶対日時表記とがある。また、日時表記には、1日の時刻を24時間で表記する24時制の表記と、1日の時刻を午前と午後に分けて12時間で表記する12時制の表記とがある。また、日時表記には、日付や時刻を表す単語を用いた表記や漢字を用いた表記、数字を用いた表記がある。
このため、例えば、テキストファイルに対して日時を検索する際は、検索したい日時に該当する複数の表記形式の日時表記文字列でそれぞれ検索が行われる。例えば、15:00を検索する際は、「15:00」に加え、「午後三時」、「3:00pm」でそれぞれ検索する。
そこで、例えば、文書データから日時を表す日時表記文字列を検索し、検索された日時表記文字列が相対日時表現である場合、文書データの相対日時表現の日時表記文字列に絶対日時表現の日時表記文字列を併記する技術がある。
特開2003−50795号公報
しかしながら、文書の検索では、元の文書に変更を加えず、かつ、検索されたテキストを検索者に提示する必要があり、従来技術のように相対日時表現の日時表記文字列に絶対日時表現の日時表記文字列を併記することには問題がある。
一つの側面では、検索対象のテキストデータに変更を加えることなく、異なる日時表現の文字列をまとめて検索できる符号化プログラム、符号化方法および符号化装置を提供することを目的とする。
第1の案では、符号化プログラムは、コンピュータに、入力テキストデータから少なくとも日付または時刻を表記する日時表記文字列を検索する処理を実行させる。符号化プログラムは、コンピュータに、日時表記文字列の検索該当に応じて、日時表記文字列を特定の日時表記フォーマットに変換した正規化日時表記および前記日時表記文字列を識別する識別符号を含む変換日時符号を生成する処理を実行させる。符号化プログラムは、コンピュータに、変換日時符号および日時表記文字列を対応づけた変換情報に基づき、前記入力テキストデータを変換し出力する処理を実行させる。
本発明の1実施態様によれば、検索対象のテキストデータに変更を加えることなく、異なる日時表現の文字列をまとめて検索できるという効果を奏する。
図1は、日時表記文字列の圧縮の流れを概略的に示した図である。 図2は、日時検索の流れを概略的に示した図である。 図3は、符号化装置の構成の一例を示す図である。 図4Aは、ビットフィルタの単語部の一例を示す図である。 図4Bは、ビットフィルタの日時部の一例を示す図である。 図5Aは、年表記パターンのコード体系の一例を示す図である。 図5Bは、月日表記パターンのコード体系の一例を示す図である。 図5Cは、時刻表記パターンのコード体系の一例を示す図である。 図5Dは、相対日時表記パターンのコード体系の一例を示す図である。 図6は、相対日時表記パターンのコードに絶対日時のコードを連続させる一例を示す図である。 図7は、動的辞書のデータ構造の一例を示す図である。 図8は、ビットマップインデックスのデータ構造の一例を示す図である。 図9は、範囲指定での日時検索の流れを概略的に示した図である。 図10Aは、圧縮処理の手順の一例を示すフローチャートである。 図10Bは、圧縮処理の手順の一例を示すフローチャートである。 図11は、検索処理の手順の一例を示すフローチャートである。 図12は、符号化装置のハードウェア構成を示す図である。 図13は、コンピュータで動作するプログラムの構成例を示す図である。 図14は、実施形態のシステムにおける装置の構成例を示す図である。
以下に、本願の開示する符号化プログラム、符号化方法および符号化装置の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの権利範囲が限定されるものではない。各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[圧縮処理]
最初に、図1を用いて、実施例1にかかる符号化装置10が実施する日時表記文字列の圧縮処理の概要について説明する。図1は、日時表記文字列の圧縮の流れを概略的に示した図である。図1の例では、符号化装置10が、圧縮処理の対象である対象ファイル1に含まれる「He went out at yesterday 3:00pm」を圧縮する場合を例に説明する。符号化装置10は、対象ファイル1から日付や時刻を表記する日時表記文字列を検索する。ここで、日時表記には、複数の表記形式がある。そこで、例えば、符号化装置10は、様々な表記形式で日時の表記に使用される記号、数値、単語、文字等を検索し、該当箇所の前後の文字列の表記形式を判別して日時表記文字列を検索する。日時の表記に使用される記号としては、例えば、日付の区切り使用される「/」や時刻の区切り使用される「:」などが挙げられる。日時の表記に使用される単語としては、「yesterday」や「tomorrow」、「ago」、「am」、「pm」などが挙げられる。図1の例では、符号化装置10は、「pm」や「yesterday」を検索して、「yesterday」および「3:00pm」の日時表記文字列を検索する。
符号化装置10は、検索された日時表記文字列を抽出して、ビットフィルタ30の日時部30Bと照合する。図1の例では、符号化装置10は、「yesterday」および「3:00pm」の日時表記文字列を抽出してビットフィルタ30の日時部30Bと照合する。ビットフィルタ30の日時部30Bは、日時表記文字列に対して単語コードと、圧縮符号とを対応付ける変換情報を保持したデータである。ビットフィルタ30の日時部30Bは、各種の日時表記文字列に対応する単語コードが予め登録されている。例えば、ビットフィルタ30の日時部30Bには、「yesterday」に対応して単語コード「CA1001h」が登録され、「3:00pm」に対応して単語コード「C8F001h」が登録されている。単語コードの最後に付した「h」は、コードが16進数で表記されていることを示す符号である。日時表記文字列に対応して予め登録する単語コードは、日時表記文字列を特定の日時表記フォーマットに変換した正規化日時表記での日時の順のコードが付与されており、日時表記文字列の表記形式を識別する識別符号を含んでいる。単語コードの詳細は、後述する。また、ビットフィルタ30の日時部30Bのデータ構造に関する詳細も、後述する。
符号化装置10は、ビットフィルタ30の日時部30Bとの照合により、日時表記文字列に対応する単語コードを取得し、日時表記文字列のコードを生成する。図1の例では、「yesterday」に対応して単語コード「CA1001h」が取得され、「3:00pm」に対応して単語コード「C8F001h」が取得される。ここで、日時表記には、基準となる日時から相対的に指定する日時を示した相対日時表記と、絶対的に指定する日時を示した絶対日時表記とがある。符号化装置10は、相対日時表記の日時表記文字列について、所定の基準日時を基準に日時表記文字列が示す絶対日時を算出する。この基準日時は、例えば、対象ファイル1が作成された日時とし、次のように特定する。例えば、対象ファイル1が、作成日時や更新日時などの日時情報を含む場合、基準日時は、日時情報の日時とする。また、例えば、対象ファイル1が電子メールのようにメールの送信日時を含む場合、基準日時は、メールの送信日時とする。なお、基準日時は、符号化装置10の現在の日時としてもよい。基準日時として用いる対象は、動的に変更してもよい。例えば、対象ファイル1が日時情報を含む場合は、基準日時を日時情報の日時とし、対象ファイル1が日時情報を含まない場合は、基準日時を符号化装置10の現在の日時としてもよい。図1の例では、基準日時を「02/15」とした場合、相対日時表記「yesterday」の絶対日時は、「02/14」と算出される。
符号化装置10は、ビットフィルタ30の日時部30Bを参照して、算出された絶対日時に対応する単語コードを取得し、絶対日時のコードを求める。図1の例では、「02/14」に対応して単語コード「C720E1h」が取得されている。
符号化装置10は、日時表記文字列を示すコードを生成する。符号化装置10は、絶対日時表記の日時表記文字列については、取得された単語コードを日時表記文字列を示すコードとする。一方、符号化装置10は、相対日時表記の日時表記文字列については、取得された相対日時表記の日時表記文字列の単語コードに、絶対日時のコードを付加してコードとする。図1の例では、「3:00pm」のコードが「C8F001h」と生成され、「yesterday」のコードが「CA1101C720E1h」と生成される。なお、「yesterday」のコード「CA1001h」は、絶対日時のコードを付加したことを示す継続フラグをオンしたため、「CA1101h」と変更されている。継続フラグの詳細は、後述する。
符号化装置10は、生成したコードに新たな圧縮符号を割り当て、コードと圧縮符号を対応付けて動的辞書31に登録する。図1の例では、コード「C8F001h」と圧縮符号「A004h」、および、コード「CA1101C720E1h」と圧縮符号「A005h」がそれぞれ対応づけて動的辞書31に登録されている。また、符号化装置10は、新たな圧縮符号を照合した単語に対応する圧縮符号として、ビットフィルタ30に登録する。そして、符号化装置10は、割り当てた新たな圧縮符号を圧縮ファイル2に出力する。以降、符号化装置10は、ビットフィルタ30に圧縮符号が登録されている文字列については、登録された圧縮符号を圧縮ファイル2に出力して、対象ファイル1を圧縮する。例えば、符号化装置10は、対象ファイル1に次に「3:00pm」が出現した場合、既にビットフィルタ30に登録されている圧縮符号「A004h」を取得し、圧縮ファイル2に出力する。
符号化装置10は、照合した単語が対象ファイル1に含まれていたことをビットマップインデックス32に記録する。ビットマップインデックス32では、ファイルに対して一意のファイル番号が定められる。ビットマップインデックス32には、ファイル番号のファイルに、圧縮符号に対応する文字列が出現した場合、「1」が記録され、圧縮符号に対応する文字列が出現しない場合、「0」が記録される。図1の例では、対象ファイル1のファイル番号を「2」としており、ビットマップインデックス32には、ファイル番号が「2」の行の圧縮符号「A004h」、「A005h」でそれぞれ「1」が記録されている。
なお、対象ファイル1の日時表記文字列以外の部分について、符号化装置10は、単語ごとに区切って各単語を取得し、後述するビットフィルタ30の単語部30Aを用いて各単語を圧縮符号に変換して、圧縮ファイル2に出力する。図1の例では、「He」、「went」、「out」、「at」の各単語は、後述するビットフィルタ30の単語部30Aを用いて圧縮される。
[検索処理]
次に、図2を用いて、実施例1にかかる符号化装置10が実施する日時の検索処理の概要について説明する。図2は、日時検索の流れを概略的に示した図である。図2の例では、符号化装置10のファイル検索部50が検索対象の日付の入力を受け付ける。図2の例では、「2/14」の入力を受け付けている。ファイル検索部50は、入力された日付に対応する単語コードをビットフィルタ30の日時部30Bから取得する。なお、ファイル検索部50は、入力された日付の表記を正規化して単語コードを取得する。例えば、「2/14」を「02/14」と表記を正規化して単語コードを取得する。図2の例では、「2/14」に対応する単語コード「C720E1h」が取得されている。ファイル検索部50は、動的辞書31を参照し、単語コード「C720E1h」をコードに含む圧縮符号を検索する。図2の例では、圧縮符号「A005h」のコード「CA1101C720E1h」が「C720E1h」を含んでいる。このコード「CA1101C720E1h」の「CA1101」部分は、相対日時「yesterday」に対応するコードである。「CA1101C720E1h」の「C720E1」部分は、絶対日時「02/14」に対応するコードである。図2の例では、圧縮符号「A005h」が検索される。ファイル検索部50は、ビットマップインデックス32を参照して、検索された圧縮符号を含むファイルを特定する。図2の例では、圧縮符号「A005h」がインデックスの値が「2」のファイルに含まれると特定される。すなわち、符号化装置10は、相対日時表現で日時が記録されたファイルを絶対日時表現の日時で検索できる。
[装置構成]
次に、符号化装置10の構成について説明する。図3は、符号化装置の構成の一例を示す図である。符号化装置10は、対象ファイル1の圧縮などの符号化を行う装置である。符号化装置10は、例えば、パーソナルコンピュータ、サーバコンピュータなどのコンピュータや、タブレット端末、スマートフォンなどの情報処理装置である。符号化装置10は、1台のコンピュータとして実装してもよく、また、複数台のコンピュータによるクラウドとして実装することもできる。なお、本実施例では、符号化装置10を1台のコンピュータとした場合を例として説明する。図3に示すように、符号化装置10は、記憶部20と、制御部21とを有する。なお、符号化装置10は、コンピュータや情報処理装置が有する上記の機器以外の他の機器を有してもよい。
記憶部20は、ハードディスク、SSD(Solid State Drive)、光ディスクなどの記憶装置である。なお、記憶部20は、RAM(Random Access Memory)、フラッシュメモリ、NVSRAM(Non Volatile Static Random Access Memory)などのデータを書き換え可能な半導体メモリであってもよい。
記憶部20は、制御部21で実行されるOS(Operating System)や各種プログラムを記憶する。例えば、記憶部20は、入力の支援に用いる各種のプログラムを記憶する。さらに、記憶部20は、制御部21で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部20は、ビットフィルタ30と、動的辞書31と、ビットマップインデックス32とを記憶する。
ビットフィルタ30は、単語や日時表記文字列と、単語コードと、圧縮符号を対応付ける変換情報を保持したデータである。ビットフィルタ30は、単語に関する各種の情報を記憶する単語部30Aと、日時表記に関する各種の情報を記憶する日時部30Bとが設けられている。なお、ビットフィルタ30は、単語部30Aと日時部30Bを統合して1つの構成としてもよい。
図4Aおよび4Bを用いて、ビットフィルタ30について説明する。図4Aは、ビットフィルタの単語部の一例を示す図である。図4Bは、ビットフィルタの日時部の一例を示す図である。図4Aおよび4Bの例のようにビットフィルタ30は、「2グラム」、「ビットマップ」、「基礎単語へのポインタ」、「基礎単語」、「圧縮符号」、「単語コード」、「登録番号」の各項目を有する。図4Aに示すビットフィルタ30の単語部30Aには、基礎単語として、各種の単語が登録される。図4Bに示すビットフィルタ30の日時部30Bには、基礎単語として、各種の日時表記文字列が登録される。
「2グラム」の項目は、各単語に含まれる2グラム文字を記憶する領域である。例えば、図4Aに示すように、「able」は、「ab」「bl」「le」に対応する2グラム文字を含む。「ビットマップ」の項目は、2グラム文字が含まれる基礎単語の位置を表すビット列を記憶する領域である。例えば、2グラム「ab」のビットマップが「1_0_0_0_0」の場合、ビットマップは基礎単語の先頭2文字が「ab」であることを表す。ビットマップは、基礎単語へのポインタによってそれぞれ基礎単語に対応付けられる。例えば、2グラム「ab」のビットマップ「1_0_0_0_0」は、「able」および「above」に対応付けられる。
「基礎単語」の項目は、基礎単語として予め登録された単語を記憶する領域である。例えば、図4Aに示すビットフィルタ30の単語部30Aでは、所定の母集団から抽出した各単語が、それぞれ基礎単語として登録されている。例えば、辞書などに登録された約19万語の単語が基礎単語として登録される。一方、図4Bに示すビットフィルタ30の日時部30Bでは、様々な表記形式の表記された日時表記文字列を、それぞれ基礎単語として登録する。例えば、図4Bの例では、2月14日を表記した「02/14」が登録されている。「圧縮符号」の項目は、割り当てられた圧縮符号を記憶する領域である。ここで、本実施例では、ビットフィルタ30の単語部30Aに登録する基礎単語を、出現頻度が相対的に高い高頻度単語と、出現頻度が相対的に低い低頻度単語とに分けている。本実施例では、出現頻度の高い順に8000位までの基礎単語を高頻度単語とし、8001位以降の基礎単語を低頻度単語としている。高頻度単語については、短い圧縮符号を予め割り当てて、割り当てた圧縮符号を「圧縮符号」の項目に予め記憶させる。低頻度単語については、出現した際に圧縮符号を動的に割り当てて、割り当てた圧縮符号を「圧縮符号」の項目に予め記憶させる。すなわち、圧縮符号は、高頻度単語については予め登録され、低頻度単語については初期状態では未登録とされている。一方、ビットフィルタ30の日時部30Bでは、出現した際に圧縮符号を動的に割り当てて、割り当てた圧縮符号を「圧縮符号」の項目に予め記憶させる。すなわち、圧縮符号は、初期状態では未登録とされている。
「単語コード」の項目は、各基礎単語に一意に割り当てられる単語コードを記憶する領域である。単語コードの詳細は、後述する。「登録番号」の項目は、動的辞書31に登録した登録番号を記憶する領域である。登録番号は、動的辞書31に登録した順に昇順で番号が割り当てられる。
ここで、単語コードについて説明する。本実施例では、日付や時刻を絶対日時で表記する日時表記文字列を、年を表記する年表記パターン、月日を表記する月日表記パターン、時間を表記する時間表記パターンに分けて、それぞれごとに単語コードが日時順となるようにコード体系を定めている。
年表記パターン、月日表記パターン、時間表記パターンのそれぞれで使用する単語コードの範囲を以下に示す。
年表記パターン:3バイト(C0000*h〜C6FFF*h)
月日表記パターン:3バイト(C7000*h〜C7FFF*h)
時刻表記パターン:4バイト(C80000**h〜C9FFFF**h)
「*」は、日時表記文字列の表記形式により定まる。
年表記パターン、月日表記パターン、時間表記パターンのコード体系について説明する。図5Aは、年表記パターンのコード体系の一例を示す図である。年表記パターンは、全体で3バイト(24ビット)とされている。先頭の5ビットは、「11000」固定とされている。先頭6ビット目から20ビット目の範囲は、年を記憶する領域であり、0〜9999年の範囲で年が記憶される。後端から4ビットの範囲のうち上位3ビットの範囲は、年の表記パターンを記憶する領域である。後端の1ビットは、年の値が紀元前(BC)、紀元後(AC)の何れか示すかを記憶する領域である。年の表記パターンには、半角数字による表記や、全角数字による表記、桁数を示すカンマの有無、日本語の「年」の有無、漢字表記など様々ある。各種の年の表記パターンには、予め表記パターンを示す値を割り当てる。図5Aには、各種の年の表記パターンに割り当てる値の一例が示されている。例えば、「2013」のように半角、カンマ無しの表記パターンには、「0」を割り当てる。また、例えば、「2013年」のように日本語の「年」を含む半角の表記パターンには、「4」を割り当てる。後端から4ビットの範囲のうち上位3ビットの範囲には、年の表記パターンに対応した値を設定する。後端の1ビットには、年が紀元前の場合、「1」を設定し、紀元後の場合、「0」を設定する。なお、図5Aに示した年の表記パターンは、一例であり、これに限定されるものではない。また、図5Aに示した年表記パターンのコード体系も、一例であり、これに限定されるものではない。
図5Bは、月日表記パターンのコード体系の一例を示す図である。月日表記パターンは、全体で3バイト(24ビット)とされている。先頭の8ビットは、「11000111」固定とされている。先頭9ビット目から12ビット目の範囲は、月を記憶する領域であり、1〜12月の範囲で月が記憶される。先頭13ビット目から15ビット目の範囲は、「000」固定とされている。先頭16ビット目から20ビット目の範囲は、日を記憶する領域であり、1〜31日の範囲で日が記憶される。なお、年月を記憶する領域は、一例であり、他の範囲を用いてもよい。後端から4ビットの範囲は、月日の表記パターンを記憶する領域である。月日の表記パターンには、文字とカンマを用いた表記や、数字とスラッシュを用いた表記、半角、全角、日本語の「月」、「日」の有無、漢字表記など様々ある。各種の月日の表記パターンには、予め表記パターンを示す値を割り当てる。図5Bには、各種の年の表記パターンに割り当てる値の一例が示されている。例えば、「Apr.1st」のように文字とカンマを用いた表記パターンには、「0」を割り当てる。また、例えば、「4月1日」のように日本語の「月」、「日」を含む半角の表記パターンには、「4」を割り当てる。後端から4ビットの範囲には、年の表記パターンに対応した値を設定する。なお、図5Bに示した年の表記パターンは、一例であり、これに限定されるものではない。また、図5Bに示した月日表記パターンのコード体系も、一例であり、これに限定されるものではない。
図5Cは、時刻表記パターンのコード体系の一例を示す図である。時刻表記パターンは、全体で4バイト(32ビット)とされている。先頭の7ビットは、「1011100」固定とされている。先頭8ビット目から12ビット目の範囲は、時間を記憶する領域であり、0〜23時の範囲で時間が記憶される。先頭13ビット目から18ビット目の範囲は、分を記憶する領域であり、0〜59分の範囲で分が記憶される。先頭19ビット目から23ビット目の範囲は、秒を記憶する領域であり、0〜59秒の範囲で秒が記憶される。なお、時分秒を記憶する領域は、一例であり、他の範囲を用いてもよい。後端から4ビットの範囲は、月日の表記パターンを記憶する領域である。時刻の表記パターンには、24時制の表記や、12時制の表記、時分秒をピリオドで区切った表記、半角、全角、日本語の「時」、「分」、「秒」の有無、漢字表記など様々ある。各種の時刻の表記パターンには、予め表記パターンを示す値を割り当てる。図5Cには、各種の時刻の表記パターンに割り当てる値の一例が示されている。例えば、「9:30」のように半角のピリオドを用いた24時制の表記パターンには、「0」を割り当てる。また、例えば、「午前9時30分」のように12時制の日本語の「時」、「分」を含む全角の表記パターンには、「5」を割り当てる。後端から4ビットの範囲には、時刻の表記パターンに対応した値を設定する。なお、図5Cに示した時刻の表記パターンは、一例であり、これに限定されるものではない。また、図5Cに示した時刻表記パターンのコード体系も、一例であり、これに限定されるものではない。
さらに、本実施例では、相対的に日付や時刻を指定する相対日時表記パターンについて次のように単語コードを定めている。
図5Dは、相対日時表記パターンのコード体系の一例を示す図である。相対日時表記パターンは、3バイト(24ビット)単位としてコードが定められている。先頭の8ビットは、「11001010」固定とされている。先頭9ビット目から12ビット目の範囲は、指定された日時の種類を記憶する領域である。相対日時表記で使用される日時の種類には、予め種類パターンを示す値を割り当てる。図5Dには、相対日時表記で使用される日時の種類と割り当てる値の一例が示されている。例えば、「年」には、「0」を割り当てる。先頭15ビット目は、相対指定のコードが継続する否かを示す継続フラグを記憶する領域である。継続する場合は、継続フラグに「1」が設定され、継続しない場合は、継続フラグに「0」が設定される。先頭17ビット目から24ビット目の範囲は、相対日時表記で指定された値を記憶する領域であり、-127〜+127の範囲で値が記憶される。なお、図5Dに示した種類パターンは、一例であり、これに限定されるものではない。また、図5Dに示した相対日時表記パターンのコード体系も、一例であり、これに限定されるものではない。
相対日時表記では、時間や分などを複数組み合わせて相対日時が指定される場合がある。複数組み合わせて相対日時が指定された場合、継続フラグを用いて相対日時表記パターンのコードを連続させる。例えば、「1時間10分後」と相対日時のコードは、1時間後のコード「CA3001h」と10分後のコード「CA400Ah」と連続させる。この際、「CA3001h」の継続フラグを「1」に変更する。このため、「1時間10分後」のコードは、「CA3101CA400Ah」となる。継続フラグは、絶対日時のコードを連続される場合も利用する。
図6は、相対日時表記パターンのコードに絶対日時のコードを連続させる一例を示す図である。例えば、基準日時を「13:30」に対する「1時間10分後」は、「14:40」である。この「14:40」の時刻表記パターンのコードは、「C8EA00h」となる。
相対日時「1時間10分後」のコード「CA3101CA400Ah」に絶対日時のコード「C8EA00h」を連続させる場合、「CA400Ah」の継続フラグを「1」に変更する。このため、「CA3101CA400Ah」に「C8EA00h」を連続させたコードは、「CA3101CA410AC8EA00h」となる。図1の例でも、「yesterday」に対応して単語コード「CA1001h」に「2/14」に対応する単語コード「C720E1h」を継続する場合、「CA1001h」の継続フラグを「1」に変更している。このため、「CA1001h」に「C720E1h」を連続させたコードは、「CA1101C720E1h」となっている。
継続フラグは、相対日時表記パターンのコードを継続させることを示すビットであり、日時表記を表すものではない。このため、相対日時表記パターンのコードを比較する場合、継続フラグは、比較対象から除外する。例えば、相対日時表記パターンのコードを比較する場合、継続フラグは、「0」として比較を行う。例えば、コード「CA1101C720E1h」の「CA1101」部分は、「CA1001」として比較を行う。これにより、例えば、「yesterday」に対応して単語コード「CA1001h」を検索する場合、「CA1101C720E1h」が該当するようになる。
図3に戻り、動的辞書31は、基礎単語に動的に割り当てられた圧縮符号を記憶する。図7は、動的辞書のデータ構造の一例を示す図である。図7の例のように、動的辞書31は、「登録番号」、「圧縮符号」、「コード」の各項目を有する。
「登録番号」の項目は、登録番号を記憶する領域である。「圧縮符号」の項目は、コードに対応づけて登録された圧縮符号を記憶する領域である。「コード」の項目は、圧縮符号に対応づけて登録されたコードを記憶する領域である。図7の例では、登録番号「3」として、圧縮符号「A003h」とコード「A001A7h」が記憶されている。
図3に戻り、ビットマップインデックス32は、単語毎に、当該単語が出現したか否かを記憶するインデックスである。インデックスとは、各単語が含まれるファイルを表す情報ビット列である。ビットマップインデックス32は、単語毎に各ファイルにおける単語の出現の有無を保持する。
図8は、ビットマップインデックスのデータ構造の一例を示す図である。ビットマップインデックス32には、高頻度単語がファイルに出現したか否かを記憶する第1記憶領域32Aと、低頻度単語および日時表記文字列がファイルに出現したか否かを記憶する第2記憶領域32Bとが設けられている。第1記憶領域32Aは、各高頻度単語がファイルに出現したか否かを記憶するため、予め設けられる。すなわち、第1記憶領域32Aは、高頻度単語の分だけ記憶領域が予め確保される。例えば、図8の例では、第1記憶領域32Aに、n個のファイルに、それぞれの8000種の高頻度単語が出現したか否かを記憶する記憶領域が予め設けられている。第2記憶領域32Bは、ファイルに低頻度単語および日時表記文字列が出現した際に、出現した低頻度単語および日時表記文字列がファイルに出現したか否かを記憶する記憶領域が追加で設けられる。すなわち、第2記憶領域32Bは、ファイルに新たな低頻度単語および日時表記文字列が出現する毎に、記憶領域が確保される。例えば、図8の例では、第2記憶領域32Bに、n個のファイルに、それぞれの24000種の高頻度単語および日時表記文字列が出現したか否かを記憶する記憶領域が予め設けられている。
ビットマップインデックス32には、ファイル番号のファイルに、圧縮符号に対応する文字列が出現した場合、「1」が記録され、圧縮符号に対応する文字列が出現しない場合、「0」が記録される。図8の例では、ファイル番号「1」の「Apr.1st」、「The」、「aardvark」、「eats」に対応して「1」が記録されている。ビットマップインデックス32は、各ファイル番号に対応するビットを確認することにより、単語や日時表記文字列を含むファイルを絞りこむことができる。図8の例では、ファイル番号「1」の「Apr.1st」、「The」、「aardvark」、「eats」に対応して「1」が記録されてため、「Apr.1st」、「The」、「aardvark」、「eats」を含むファイルをファイル番号「1」のファイルと絞りこむことができる。
図3に戻り、制御部21は、符号化装置10を制御するデバイスである。制御部21としては、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等の電子回路や、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)等の集積回路を採用できる。制御部21は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部21は、各種のプログラムが動作することにより各種の処理部として機能する。例えば、制御部21は、圧縮部40と、ファイル検索部50とを有する。
圧縮部40は、圧縮対象のファイルから単語や日時表記文字列を抽出し、単語や日時表記文字列の単位に圧縮符号を対応させた圧縮ファイル2を生成する。圧縮部40は、検索部41と、生成部42と、登録部43と、格納部44と、ファイルライト部45とを有する。以下、圧縮部40の各構成について詳細に説明する。
検索部41は、圧縮を行う対象ファイル1を読み出し、少なくとも日付または時刻を表記する日時表記文字列を検索する。例えば、検索部41は、日付および/または時刻を表記する日時表記文字列を検索する。すなわち、検索部41は、日付、時刻の何れか一方または両方を表記する日時表記文字列を検索する。例えば、検索部41は、様々な表記形式で日時の表記に使用される記号、数値、単語、文字等を検索し、該当箇所の前後の文字列の表記形式を判別して日時表記文字列を検索する。また、検索部41は、日時表記文字列以外の部分から単語を抽出する。例えば、英語のように、文章の単語がスペースなどの所定の区切り文字で区切られる場合、検索部41は、文字列中の区切り文字によって文字列を単語毎に区切ることで、文字列から各単語を抽出する。一方、例えば、日本語のように、文章の単語が特定の区切り文字で区切られていない場合、検索部41は、文字列に形態素解析、構文解析など、文章の言語に応じた自然言語処理を行うことで、文字列から各単語を抽出する。
生成部42は、検索された日時表記文字列をビットフィルタ30の日時部30Bと照合して、日時表記文字列に対応する単語コードを取得し、日時表記文字列を示すコードを生成する。例えば、生成部42は、日時表記文字列が絶対日時表記である場合、ビットフィルタ30の日時部30Bと照合して、日時表記文字列に対応する単語コードを取得し、取得された単語コードを日時表記文字列を示すコードとする。一方、生成部42は、日時表記文字列が相対日時表記である場合、所定の基準日時を基準に日時表記文字列が示す絶対日時を算出する。生成部42は、ビットフィルタ30の日時部30Bと照合して、相対日時表記の日時表記文字列に対応する単語コードと、絶対日時に対応する単語コードとを取得する。そして、生成部42は、相対日時表記の日時表記文字列の単語コードに、絶対日時のコードを付加したコードを日時表記文字列を示すコードとする。生成部42は、日時表記文字列が絶対日時表記であるか、相対日時表記であるかを表記形式から判定してもよい。また、例えば、ビットフィルタ30の日時部30Bに、日時表記文字列ごとに、日時表記文字列が絶対日時表記であるか、相対日時表記であるかを示すフラグを記憶させる。生成部42が、ビットフィルタ30の日時部30Bに記憶されたフラグから日時表記文字列が絶対日時表記であるか、相対日時表記であるかを判定してもよい。
登録部43は、対象ファイル1から検索された日時表記文字列および単語の圧縮符号を動的辞書31に登録する。例えば、登録部43は、検索された日時表記文字列や単語に対応するビットフィルタ30の単語部30Aおよび日時部30Bのレコードを参照する。登録部43は、レコードの圧縮符号の項目に圧縮符号が登録されているか否かに基づいて、対象ファイル1から検索された日時表記文字列や単語の圧縮符号が動的辞書31に登録されているか否かを判定する。
登録部43は、対象ファイル1から検索された日時表記文字列や単語の圧縮符号がビットフィルタ30に登録されている場合、格納部44に処理を移行させる。
一方、登録部43は、対象ファイル1から検索された日時表記文字列や単語の圧縮符号がビットフィルタ30に登録されていない場合、検索された日時表記文字列や単語に圧縮符号を割り当てる。そして、登録部43は、新たな動的番号を採番し、動的番号に対応付けてコードと圧縮符号を動的辞書31に登録する。また、登録部43は、動的辞書31に登録した圧縮符号をビットフィルタ30の圧縮符号の項目に登録する。
格納部44は、ビットマップインデックス32に情報を格納する。ビットマップインデックス32は、対象ファイル1から検索された日時表記文字列および単語毎に、当該日時表記文字列および単語が出現したか否かを記憶するインデックスである。格納部44は、対象ファイル1から検索された日時表記文字列および単語毎の圧縮符号がビットマップインデックス32に登録されているか否かを判定する。
格納部44は、圧縮符号が登録されていると判定した場合、圧縮符号のレコードの対象ファイル1に対応するファイル番号に日時表記文字列や単語が出現したことを記録する。
一方、格納部44は、圧縮符号が登録されていないと判定した場合、ビットマップインデックス32の第2記憶領域32Bに、圧縮符号のレコードを追加し、対象ファイル1に対応するファイル番号に日時表記文字列や単語が出現したことを記録する。
ファイルライト部45は、ビットフィルタ30に基づき、対象ファイル1を変換し出力する。例えば、ファイルライト部45は、対象ファイル1から検索された日時表記文字列および単語に対応する圧縮符号をビットフィルタ30から取得する。そして、ファイルライト部45は、取得した圧縮符号を圧縮ファイル2に出力する。
ファイル検索部50は、指定された検索条件に従い、ファイルを検索する。ファイル検索部50は、受付部51と、取得部52と、特定部53とを有する。以下、ファイル検索部50の各構成について詳細に説明する。
受付部51は、検索条件とする日付の入力を受け付ける。例えば、受付部51は、日付の入力を受け付ける操作画面などの入力インタフェースを提供しており、検索条件とする日付の入力を受け付ける。
取得部52は、入力された日付に対応する単語コードを取得する。例えば、取得部52は、ビットフィルタ30の日時部30Bを参照し、入力された日付に対応する単語コードを取得する。
特定部53は、入力された日付に対応する日時表記文字列を含んだファイルを特定する。例えば、特定部53は、動的辞書31を参照し、取得された単語コードをコードに含む圧縮符号を検索する。そして、特定部53は、ビットマップインデックス32を参照して、検索された圧縮符号を含むファイルを特定する。
なお、受付部51は、日時の範囲指定で検索条件の入力を受け付けてもよい。範囲指定で検索条件が入力された場合、取得部52は、範囲の開始日時と終了日時に対応する単語コードを取得する。特定部53は、動的辞書31を参照し、日時に関するビットの示す値が開始日時の単語コードと終了日時の単語コードの間となる単語コードをコードに含む圧縮符号を検索する。そして、特定部53は、ビットマップインデックス32を参照して、検索された圧縮符号を含むファイルを特定する。
図9は、範囲指定での日時検索の流れを概略的に示した図である。図9の例は、検索条件として「2/13〜2/15」範囲が指定された場合を示している。ファイル検索部50は、範囲の開始日時と終了日時に対応する単語コードをビットフィルタ30の日時部30Bから取得する。図9の例では、範囲の開始日時「2/13」に対応する単語コード「C720D1h」と、範囲の終了日時「2/15」に対応する単語コード「C720F1h」が取得されている。ファイル検索部50は、動的辞書31を参照し、「C720D1h」と「C720F1h」の間の単語コードをコードに含む圧縮符号を検索する。図9の例では、圧縮符号「A005h」のコード「CA1101C720E1h」が「C720E1h」を含んでいる。このコード「CA1101C720E1h」の「CA1101」部分は、相対日時「yesterday」に対応するコードである。「CA1101C720E1h」の「C720E1」部分は、絶対日時「2/14」に対応するコードである。図9の例では、圧縮符号「A005h」が検索される。ファイル検索部50は、ビットマップインデックス32を参照して、検索された圧縮符号を含むファイルを特定する。図9の例では、圧縮符号「A005h」がインデックスの値が「2」のファイルに含まれると特定される。すなわち、符号化装置10は、範囲が指定された場合でも指定された範囲の日時が記録されたファイルを検索できる。また、符号化装置10は、相対日時表現で日時が記録された場合でも絶対日時表現の日時で検索できる。
このように、符号化装置10は、対象ファイル1に変更を加えることなく、異なる日時表現の文字列をまとめて検索させることができる。また、符号化装置10は、圧縮ファイル2を解凍することなく、指定された日時や指定された範囲の日時を含む圧縮ファイル2を特定できる。
[処理の流れ]
本実施例に係る符号化装置10が実行する各種の処理について説明する。最初に、本実施例に係る符号化装置10が対象ファイル1を符号化して圧縮する圧縮処理の流れについて説明する。図10Aおよび図10Bは、圧縮処理の手順の一例を示すフローチャートである。この圧縮処理は、所定のタイミング、例えば、対象ファイル1を指定して圧縮開始を指示する所定操作が行われたタイミングで実行される。
図10Aに示すように、検索部41は、対象ファイル1から文字列を順に読み出す(S10)。検索部41は、読み出した文字列が日時表記文字列であるか判定する(S11)。文字列が日時表記文字列である場合(S11肯定)、生成部42は、日時表記文字列をビットフィルタ30の日時部30Bと照合して、日時表記文字列に対応する単語コードを取得し、日時表記文字列を示すコードを生成する(S12)。登録部43は、日時表記文字の圧縮符号がビットフィルタ30の日時部30Bに登録されているか判定する(S13)。圧縮符号が登録されている場合(S13肯定)、後述するS16へ移行する。
一方、圧縮符号が登録されていない場合(S13否定)、登録部43は、日時表記文字列に圧縮符号を割り当て、新たな動的番号を採番し、動的番号に対応付けてコードと圧縮符号を動的辞書31に登録する(S14)。また、登録部43は、動的辞書31に登録した圧縮符号をビットフィルタ30の圧縮符号の項目に登録する(S15)。
格納部44は、日時表記文字列の圧縮符号がビットマップインデックス32に登録されているか否かを判定する(S16)。圧縮符号が登録されている場合(S16肯定)、格納部44は、圧縮符号のレコードの対象ファイル1に対応するファイル番号に日時表記文字列が出現したことを記録する(S17)。一方、圧縮符号が登録されていない場合(S16否定)、格納部44は、ビットマップインデックス32の第2記憶領域32Bに、圧縮符号のレコードを追加し、対象ファイル1に対応するファイル番号に日時表記文字列が出現したことを記録する(S18)。
ファイルライト部45は、日時表記文字列に対応する圧縮符号を圧縮ファイル2に出力する(S19)。
検索部41は、対象ファイル1の読み出しが完了したか否かを判定する(S20)。読み出しが完了した場合(S20肯定)、処理を終了する。一方、読み出しが完了していない場合(S20否定)、上述のS10へ移行する。
一方、文字列が日時表記文字列ではない場合(S11否定)、図10Bに示すように、検索部41は、読み出した文字列が単語であるか判定する(S25)。文字列が単語ではない場合(S25否定)、図10Aに示した、上述のS10へ移行してさらに文字列を読み出す。一方、文字列が単語である場合(S25肯定)、生成部42は、単語をビットフィルタ30の単語部30Aと照合して、単語に対応する単語コードを取得する(S26)。登録部43は、単語の圧縮符号がビットフィルタ30の単語部30Aに登録されているか判定する(S27)。圧縮符号が登録されている場合(S27肯定)、後述するS30へ移行する。
一方、圧縮符号が登録されていない場合(S27否定)、登録部43は、単語に圧縮符号を割り当て、新たな動的番号を採番し、動的番号に対応付けてコードと圧縮符号を動的辞書31に登録する(S28)。また、登録部43は、動的辞書31に登録した圧縮符号をビットフィルタ30の圧縮符号の項目に登録する(S29)。
格納部44は、単語の圧縮符号がビットマップインデックス32に登録されているか否かを判定する(S30)。圧縮符号が登録されている場合(S30肯定)、格納部44は、圧縮符号のレコードの対象ファイル1に対応するファイル番号に単語が出現したことを記録する(S31)。一方、圧縮符号が登録されていない場合(S30否定)、格納部44は、ビットマップインデックス32の第2記憶領域32Bに、圧縮符号のレコードを追加し、対象ファイル1に対応するファイル番号に単語が出現したことを記録し(S32)、図10Aに示すS19へ移行する。
次に、本実施例に係る符号化装置10が入力された日付に対応する日時表記文字列を含んだファイル検索する検索処理の流れについて説明する。図11は、検索処理の手順の一例を示すフローチャートである。この検索処理は、所定のタイミング、例えば、日付を指定して検索開始を指示する所定操作が行われたタイミングで実行される。
図11に示すように、取得部52は、ビットフィルタ30の日時部30Bを参照し、入力された日付に対応する単語コードを取得する(S40)。特定部53は、動的辞書31を参照し、取得された単語コードをコードに含む圧縮符号を検索する(S41)。特定部53は、ビットマップインデックス32を参照して、検索された圧縮符号を含むファイルを特定する(S42)。特定部53は、特定されたファイルを検索結果として出力し(S43)、処理を終了する。この検索結果の出力は、ファイルへの出力であってもよく、ディスプレイなどの表示部への出力であってもよく、外部装置への出力であってもよい。
[効果]
上述してきたように、本実施例に係る符号化装置10は、対象ファイル1から少なくとも日付または時刻を表記する日時表記文字列を検索する。符号化装置10は、日時表記文字列の検索該当に応じて、日時表記文字列を特定の日時表記フォーマットに変換した正規化日時表記および日時表記文字列を識別する識別符号を含む変換日時符号を生成する。符号化装置10は、変換日時符号および日時表記文字列を対応づけたビットフィルタ30に基づき、対象ファイル1を変換し出力する。これにより、符号化装置10は、検索対象のテキストデータに変更を加えることなく、異なる日時表現の文字列をまとめて検索させることができる。
また、本実施例に係る符号化装置10は、正規化日時表記に、日付または時刻を一意に特定可能に表記される絶対日時表記を用いる。これにより、符号化装置10は、正規化日時表記の比較により異なる日時表現の文字列をまとめて比較できる。
また、本実施例に係る符号化装置10は、正規化日時表記に対応し、日時順の付与されたコードを含む変換日時符号を生成する。これにより、符号化装置10は、変換日時符号に含まれるコードの比較により日時の順番を判別できる。
また、本実施例に係る符号化装置10は、対象ファイル1の出現した日時表記文字列に対して動的に圧縮符号を割り当て、日時表記文字列の正規化日時表記に対応付けて当該日時表記文字列の圧縮符号を辞書に登録する。符号化装置10は、対象ファイル1の日時表記文字列を辞書に登録された当該日時表記文字列の圧縮符号に変換して出力する。これにより、符号化装置10は、対象ファイル1を解凍することなく日時表現の日時をまとめて検索可能な形式に圧縮できる。
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
例えば、上記の実施例では、日時表記文字列を、年、月日、時間に分けて、それぞれごとに単語コードが日時順となるようにコード体系を定めた場合について説明したが、これに限定されない。例えば、年および月日や、月日および時間、年、月日および時間で日時順となるように単語コードを定めてもよい。
また、上記の実施例では、年表記パターン、月日表記パターン、時間表記パターンのそれぞれで使用する単語コードに含める正規化日時表記のコードを年、月日、日時など日時を直接的に示した絶対日時表記とする場合について説明したが、これに限定されない。例えば、単語コードに含める正規化日時表記のコードは、例えば、基準となる日時または時刻からの相対日時で表記される相対日時表記のコードであってもよい。例えば、正規化日時表記のコードは、ユーザが指定した特定の日時や基準となるイベントが発生した日時を基準として相対日時表記のコードを用いてもよい。
また、上記の実施例では、様々な表記形式での日時表記文字列の単語コードを予めビットフィルタ30の日時部30Bに登録しておく場合について説明したが、これに限定されない。例えば、日時表記文字列が検索された場合、生成部42が、日時表記文字列が示す日時および表記形式に応じて、単語コードを生成して日時表記文字列を示すコードを生成してもよい。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、圧縮部40(検索部41、生成部42、登録部43、格納部44、ファイルライト部45)、ファイル検索部50(受付部51、取得部52、特定部53)の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
(符号化装置のハードウェア構成)
図12は、符号化装置のハードウェア構成を示す図である。図12の例が示すように、コンピュータ400は、各種演算処理を実行するCPU401と、ユーザからのデータ入力を受け付ける入力装置402と、モニタ403とを有する。また、コンピュータ400は、記憶媒体からプログラム等を読み取る媒体読取装置404と、他の装置と接続するためのインターフェース装置405と、他の装置と無線により接続するための無線通信装置406とを有する。また、コンピュータ400は、各種情報を一時記憶するRAM407と、ハードディスク装置408とを有する。また、各装置401〜408は、バス409に接続される。
ハードディスク装置408には、例えば図3に示した圧縮部40、ファイル検索部50の各処理部と同様の機能を有する符号化プログラムが記憶される。また、ハードディスク装置408には、符号化プログラムを実現するための各種データが記憶される。
CPU401は、ハードディスク装置408に記憶された各プログラムを読み出して、RAM407に展開して実行することで各種の処理を行う。これらのプログラムは、コンピュータ400を、例えば図3に示した圧縮部40およびファイル検索部50として機能させることができる。
なお、上記の符号化プログラムは、必ずしもハードディスク装置408に記憶されている必要はない。例えば、コンピュータ400が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ400が読み出して実行するようにしてもよい。コンピュータ400が読み取り可能な記憶媒体は、例えば、CD−ROMやDVDディスク、USB(Universal Serial Bus)メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、LAN(Local Area Network)等に接続された装置にこのプログラムを記憶させておき、コンピュータ400がこれらからプログラムを読み出して実行するようにしてもよい。
図13は、コンピュータで動作するプログラムの構成例を示す図である。コンピュータ400において、図12に示すハードウェア群500(401〜409)の制御を行なうOS501が動作する。OS501に従った手順でCPU401が動作して、ハードウェア群500の制御・管理が行なわれることにより、アプリケーションプログラム503やミドルウェア502に従った処理がハードウェア群500で実行される。さらに、コンピュータ400において、ミドルウェア502またはアプリケーションプログラム503が、RAM407に読み出されてCPU401により実行される。
CPU401により圧縮機能が呼び出された場合、ミドルウェア502またはアプリケーションプログラム503の少なくとも一部に基づく処理を行なうことで、(それらの処理をOS501に基づいてハードウェア群500を制御して)圧縮部40およびファイル検索部50の機能が実現される。圧縮機能は、それぞれアプリケーションプログラム503自体に含まれてもよいし、アプリケーションプログラム503に従って呼び出されることで実行されるミドルウェア502の一部であってもよい。
アプリケーションプログラム503(またはミドルウェア502)の圧縮機能により得られる圧縮ファイル2は、部分的に伸張することも可能である。圧縮ファイル2の途中を伸張する場合には、伸張対象の部分までの圧縮データの伸張処理が抑制されるため、CPU401の負荷が抑制される。また、伸張対象の圧縮データを部分的にRAM407上に展開するので、ワークエリアも削減される。
図14は、実施形態のシステムにおける装置の構成例を示す図である。図14のシステムは、コンピュータ400a、コンピュータ400b、基地局420およびネットワーク430を含む。コンピュータ400aは、無線または有線の少なくとも一方により、コンピュータ400bと接続されたネットワーク430に接続している。
1 対象ファイル
2 圧縮ファイル
10 符号化装置
20 記憶部
21 制御部
30 ビットフィルタ
30A 単語部
30B 日時部
31 動的辞書
32 ビットマップインデックス
40 圧縮部
41 検索部
42 生成部
43 登録部
44 格納部
45 ファイルライト部
50 ファイル検索部
51 受付部
52 取得部
53 特定部

Claims (7)

  1. コンピュータに、
    入力テキストデータから少なくとも日付または時刻を表記する日時表記文字列を検索し、
    日時表記文字列の検索該当に応じて、前記日時表記文字列を特定の日時表記フォーマットに変換した正規化日時表記および前記日時表記文字列を識別する識別符号を含む変換日時符号を生成し、
    前記変換日時符号および前記日時表記文字列を対応づけた変換情報に基づき、前記入力テキストデータを変換し出力する
    処理を実行させることを特徴とする符号化プログラム。
  2. 前記正規化日時表記は、前記日付または時刻を一意に特定可能に表記される絶対日時表記である
    ことを特徴とする請求項1に記載の符号化プログラム。
  3. 前記正規化日時表記は、基準となる日付または時刻からの相対日時で表記される相対日時表記である
    ことを特徴とする請求項1に記載の符号化プログラム。
  4. 前記生成する処理は、前記正規化日時表記に対応し、日時順の付与されたコードを含む変換日時符号を生成する
    ことを特徴とする請求項1に記載の符号化プログラム。
  5. コンピュータに、
    前記入力テキストデータの出現した日時表記文字列に対して動的に圧縮符号を割り当て、日時表記文字列の正規化日時表記に対応付けて当該日時表記文字列の圧縮符号を辞書に登録する処理をさらに実行させ、
    前記出力する処理は、前記入力テキストデータの日時表記文字列を前記辞書に登録された当該日時表記文字列の圧縮符号に変換して出力する
    ことを特徴とする請求項1〜3の何れか1項に記載の符号化プログラム。
  6. 入力テキストデータから少なくとも日付または時刻を表記する日時表記文字列を検索し、
    日時表記文字列の検索該当に応じて、前記日時表記文字列を特定の日時表記フォーマットに変換した正規化日時表記および前記日時表記文字列を識別する識別符号を含む変換日時符号を生成し、
    前記変換日時符号および前記日時表記文字列を対応づけた変換情報に基づき、前記入力テキストデータを変換し出力する
    処理をコンピュータが実行することを特徴とする符号化方法。
  7. 入力テキストデータから少なくとも日付または時刻を表記する日時表記文字列を検索する検索部と、
    前記検索部により検索された日時表記文字列の検索該当に応じて、前記日時表記文字列を特定の日時表記フォーマットに変換した正規化日時表記および前記日時表記文字列を識別する識別符号を含む変換日時符号を生成する生成部と、
    前記生成部により生成された前記変換日時符号および前記日時表記文字列を対応づけた変換情報に基づき、前記入力テキストデータを変換し出力する出力部と、
    を有することを特徴とする符号化装置。
JP2015017852A 2015-01-30 2015-01-30 符号化プログラム、符号化方法および符号化装置 Active JP6507682B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015017852A JP6507682B2 (ja) 2015-01-30 2015-01-30 符号化プログラム、符号化方法および符号化装置
US15/010,735 US9419649B1 (en) 2015-01-30 2016-01-29 Encoding method and encoding device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015017852A JP6507682B2 (ja) 2015-01-30 2015-01-30 符号化プログラム、符号化方法および符号化装置

Publications (2)

Publication Number Publication Date
JP2016143200A true JP2016143200A (ja) 2016-08-08
JP6507682B2 JP6507682B2 (ja) 2019-05-08

Family

ID=56554872

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015017852A Active JP6507682B2 (ja) 2015-01-30 2015-01-30 符号化プログラム、符号化方法および符号化装置

Country Status (2)

Country Link
US (1) US9419649B1 (ja)
JP (1) JP6507682B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018180787A (ja) * 2017-04-07 2018-11-15 富士通株式会社 変更検出プログラム、変更検出方法および変更検出装置
JP2018195956A (ja) * 2017-05-16 2018-12-06 富士通株式会社 符号化プログラム、符号化装置および符号化方法

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6737117B2 (ja) * 2016-10-07 2020-08-05 富士通株式会社 符号化データ検索プログラム、符号化データ検索方法および符号化データ検索装置
CN109241167B (zh) * 2018-09-18 2022-03-25 四川爱联科技股份有限公司 基于bs架构的表格数据导入方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259498A (ja) * 1998-03-10 1999-09-24 Fujitsu Ltd 文書処理装置および記録媒体
JP2000090093A (ja) * 1998-09-08 2000-03-31 Hitachi Software Eng Co Ltd 全文検索方法及び全文検索システム並びに全文検索プログラムを記録した記録媒体
JP2002278988A (ja) * 2001-03-15 2002-09-27 Just Syst Corp 語句列変換装置、検索装置、語句列変換方法、検索方法、ならびに、記録媒体
JP2004303141A (ja) * 2003-04-01 2004-10-28 Oki Electric Ind Co Ltd 日時表現正規化装置と方法
JP2010073086A (ja) * 2008-09-22 2010-04-02 Brother Ind Ltd コンテンツ出力装置、コンテンツ出力システム、コンテンツ出力方法及びコンテンツ出力プログラム
JP2012038141A (ja) * 2010-08-09 2012-02-23 Fujitsu Ltd 文字列検索装置、文字列検索方法および文字列検索プログラム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07244669A (ja) 1994-03-04 1995-09-19 Mitsubishi Electric Corp 文書検索方式
JP3628160B2 (ja) 1997-11-06 2005-03-09 日本電信電話株式会社 日時表現正規化装置及び日時表現正規化プログラムを記録した記録媒体
JP2003050795A (ja) 2001-08-06 2003-02-21 Hitachi Ltd 時間情報表示システム
JP5204803B2 (ja) * 2010-05-10 2013-06-05 株式会社エヌ・ティ・ティ・ドコモ データ処理装置、入力支援方法及びプログラム
US9535904B2 (en) * 2014-03-26 2017-01-03 Microsoft Technology Licensing, Llc Temporal translation grammar for language translation

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11259498A (ja) * 1998-03-10 1999-09-24 Fujitsu Ltd 文書処理装置および記録媒体
JP2000090093A (ja) * 1998-09-08 2000-03-31 Hitachi Software Eng Co Ltd 全文検索方法及び全文検索システム並びに全文検索プログラムを記録した記録媒体
JP2002278988A (ja) * 2001-03-15 2002-09-27 Just Syst Corp 語句列変換装置、検索装置、語句列変換方法、検索方法、ならびに、記録媒体
JP2004303141A (ja) * 2003-04-01 2004-10-28 Oki Electric Ind Co Ltd 日時表現正規化装置と方法
JP2010073086A (ja) * 2008-09-22 2010-04-02 Brother Ind Ltd コンテンツ出力装置、コンテンツ出力システム、コンテンツ出力方法及びコンテンツ出力プログラム
JP2012038141A (ja) * 2010-08-09 2012-02-23 Fujitsu Ltd 文字列検索装置、文字列検索方法および文字列検索プログラム

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018180787A (ja) * 2017-04-07 2018-11-15 富士通株式会社 変更検出プログラム、変更検出方法および変更検出装置
JP7003433B2 (ja) 2017-04-07 2022-01-20 富士通株式会社 変更検出プログラム、変更検出方法および変更検出装置
JP2018195956A (ja) * 2017-05-16 2018-12-06 富士通株式会社 符号化プログラム、符号化装置および符号化方法
JP7003443B2 (ja) 2017-05-16 2022-01-20 富士通株式会社 符号化プログラム、符号化装置および符号化方法

Also Published As

Publication number Publication date
US9419649B1 (en) 2016-08-16
JP6507682B2 (ja) 2019-05-08
US20160226520A1 (en) 2016-08-04

Similar Documents

Publication Publication Date Title
JP6476647B2 (ja) 圧縮プログラム、圧縮装置、圧縮方法、伸長プログラム、伸長装置および伸長方法
US20160006456A1 (en) Compression device, compression method, dictionary generation device, dictionary generation method, decompression device, decompression method, information processing system, and recording medium
US9509334B2 (en) Non-transitory computer-readable recording medium, compression method, decompression method, compression device and decompression device
US9509333B2 (en) Compression device, compression method, decompression device, decompression method, information processing system, and recording medium
JP6507682B2 (ja) 符号化プログラム、符号化方法および符号化装置
EP3032439B1 (en) Compression computer program and search computer program
US20220277139A1 (en) Computer-readable recording medium, encoding device, index generating device, search device, encoding method, index generating method, and search method
CN112199951A (zh) 一种事件信息生成的方法及装置
US9965448B2 (en) Encoding method and information processing device
CN109661779B (zh) 用于压缩数据的方法和系统
JP6805720B2 (ja) データ検索プログラム、データ検索装置およびデータ検索方法
EP3236368A1 (en) Encoding processing program, encoding processing device, encoding processing method, decoding processing program, decoding processing device, and decoding processing method
US9219497B2 (en) Compression device, compression method, and recording medium
US10942934B2 (en) Non-transitory computer-readable recording medium, encoded data searching method, and encoded data searching apparatus
US10803243B2 (en) Method, device, and medium for restoring text using index which associates coded text and positions thereof in text data
US10318483B2 (en) Control method and control device
JP2011154495A (ja) 文字コード変換装置、文字コード変換方法、および文字コード変換プログラム
JP6512294B2 (ja) 圧縮プログラム、圧縮方法および圧縮装置
JP6361472B2 (ja) 対応情報生成プログラム、対応情報生成装置及び対応情報生成方法
JP2019083477A (ja) データ生成プログラム、データ生成方法および情報処理装置
JPH01286020A (ja) プログラム検索方式
JP4061283B2 (ja) 字句をデータに変換する装置、方法及びプログラム
WO2018185921A1 (ja) インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法
JP2005275880A (ja) 字句をデータに変換する装置、方法及びプログラム
Srinivas et al. Unconventional Method of Accessing Files–An Automated Generation of its Input

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171113

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180921

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181221

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190318

R150 Certificate of patent or registration of utility model

Ref document number: 6507682

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150