JP6136142B2 - 文字列置換装置、方法及びプログラム - Google Patents
文字列置換装置、方法及びプログラム Download PDFInfo
- Publication number
- JP6136142B2 JP6136142B2 JP2012185218A JP2012185218A JP6136142B2 JP 6136142 B2 JP6136142 B2 JP 6136142B2 JP 2012185218 A JP2012185218 A JP 2012185218A JP 2012185218 A JP2012185218 A JP 2012185218A JP 6136142 B2 JP6136142 B2 JP 6136142B2
- Authority
- JP
- Japan
- Prior art keywords
- replacement
- character string
- node
- character
- branch
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Document Processing Apparatus (AREA)
Description
そして、開示の技術は、統合部が、第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列としての前記第2の文字列と前記置換先文字列としての第3の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列としての前記第3の文字列との組を前記単一の置換テーブルに登録することを含む処理により、前記統合を行う。
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合する統合部と、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木(図11)を、前記統合部によって統合された置換テーブルに登録されている前記置換元文字列を網羅するように構築するトライ木構築部と、
前記トライ木構築部によって構築された前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行うフェイリアリンク追加部と、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する探索部と、
を含む文字列置換装置。
前記統合部は、複数種の置換テーブルに、同一の前記置換元文字列が異なる前記置換先文字列と対応付けられて登録されていた場合に、複数種の置換テーブルのうち適用順が先の置換テーブルに登録されていた前記置換元文字列と前記置換先文字列との組を前記単一の置換テーブルに登録することにより、前記統合を行う付記1記載の文字列置換装置。
前記統合部は、第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列としての前記第2の文字列と前記置換先文字列としての第3の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列としての前記第3の文字列との組を前記単一の置換テーブルに登録することにより、前記統合を行う付記1又は付記2記載の文字列置換装置。
前記統合部は、第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列に含まれる第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列として前記第2の文字列のうち前記第3の文字列を前記第4の文字列に置き換えた文字列との組、及び、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することにより、前記統合を行う付記1〜付記3の何れか1項記載の文字列置換装置。
前記統合部は、第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列を含む第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列との組、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組、及び、前記置換元文字列として前記第1の文字列に前記第3の文字列のうち前記第2の文字列に含まれない文字列を加えた文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することにより、前記統合を行う付記1〜付記4の何れか1項記載の文字列置換装置。
前記複数種の置換テーブルには、異体字変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、濁音除去変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、漢数字変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、英数字半角化変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、及び、略称正式化変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブルのうち、2つ以上の置換テーブルが含まれる付記1〜付記6の何れか1項記載の文字列置換装置。
前記探索部によって探索された前記置換対象文字列に含まれる前記置換元文字列を、前記置換元文字列と対応付けられた置換先文字列に置換する置換部を更に備えた付記1〜付記6の何れか1項記載の文字列置換装置。
前記探索部は、記録した前記識別情報に対応する前記置換元文字列のうち、長さがより長く、前記置換対象文字列上で重複していない前記置換元文字列を、前記置換対象文字列に含まれる前記置換元文字列として選択する付記1〜付記7の何れか1項記載の文字列置換装置。
前記トライ木構築部は、前記置換先文字列と対応付けられた前記置換元文字列の先頭から1文字ずつ取り出すと共に、前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に、前記取り出した文字がラベルとして付与された枝が存在しない場合は、前記取り出した文字以降の文字がラベルとして付与された枝とノードを新たに作成し、前記置換元文字列の末尾に到達した場合は最後のノードに前記置換元文字列に対応する識別情報を付与することを、前記統合部によって統合された置換テーブルに登録されている全ての前記置換元文字列に対して各々行うことで、前記統合された置換テーブルに登録されている前記置換元文字列を網羅するように前記トライ木を構築する付記1〜付記8の何れか1項記載の文字列置換装置。
コンピュータで、
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合し、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように構築し、
前記構築した前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行い、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する
ことを含む文字列置換方法。
前記複数種の置換テーブルに、同一の前記置換元文字列が異なる前記置換先文字列と対応付けられて登録されていた場合に、複数種の置換テーブルのうち適用順が先の置換テーブルに登録されていた前記置換元文字列と前記置換先文字列との組を前記単一の置換テーブルに登録することにより、前記統合を行う付記10記載の文字列置換方法。
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列としての前記第2の文字列と前記置換先文字列としての第3の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列としての前記第3の文字列との組を前記単一の置換テーブルに登録することにより、前記統合を行う付記10又は付記11記載の文字列置換方法。
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列に含まれる第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列として前記第2の文字列のうち前記第3の文字列を前記第4の文字列に置き換えた文字列との組、及び、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することにより、前記統合を行う付記10〜付記12の何れか1項記載の文字列置換方法。
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列を含む第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列との組、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組、及び、前記置換元文字列として前記第1の文字列に前記第3の文字列のうち前記第2の文字列に含まれない文字列を加えた文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することにより、前記統合を行う付記10〜付記13の何れか1項記載の文字列置換方法。
前記複数種の置換テーブルには、異体字変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、濁音除去変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、漢数字変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、英数字半角化変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、及び、略称正式化変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブルのうち、2つ以上の置換テーブルが含まれる付記10〜付記14の何れか1項記載の文字列置換方法。
前記探索した前記置換対象文字列に含まれる前記置換元文字列を、前記置換元文字列と対応付けられた置換先文字列に置換する付記10〜付記15の何れか1項記載の文字列置換方法。
前記記録した前記識別情報に対応する前記置換元文字列のうち、長さがより長く、前記置換対象文字列上で重複していない前記置換元文字列を、前記置換対象文字列に含まれる前記置換元文字列として選択する付記10〜付記16の何れか1項記載の文字列置換方法。
前記置換先文字列と対応付けられた前記置換元文字列の先頭から1文字ずつ取り出すと共に、前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に、前記取り出した文字がラベルとして付与された枝が存在しない場合は、前記取り出した文字以降の文字がラベルとして付与された枝とノードを新たに作成し、前記置換元文字列の末尾に到達した場合は最後のノードに前記置換元文字列に対応する識別情報を付与することを、前記統合した置換テーブルに登録されている全ての前記置換元文字列に対して各々行うことで、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように前記トライ木を構築する付記10〜付記17の何れか1項記載の文字列置換方法。
コンピュータに、
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合し、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように構築し、
前記構築した前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行い、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する
ことを含む処理を行わせるための文字列置換プログラム又は前記文字列置換プログラムを記録した記録媒体。
前記複数種の置換テーブルに、同一の前記置換元文字列が異なる前記置換先文字列と対応付けられて登録されていた場合に、複数種の置換テーブルのうち適用順が先の置換テーブルに登録されていた前記置換元文字列と前記置換先文字列との組を前記単一の置換テーブルに登録することにより、前記統合を行う付記19記載の文字列置換方法。
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列としての前記第2の文字列と前記置換先文字列としての第3の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列としての前記第3の文字列との組を前記単一の置換テーブルに登録することにより、前記統合を行う付記19又は付記20記載の文字列置換プログラム又は記録媒体。
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列に含まれる第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列として前記第2の文字列のうち前記第3の文字列を前記第4の文字列に置き換えた文字列との組、及び、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することにより、前記統合を行う付記19〜付記21の何れか1項記載の文字列置換プログラム又は記録媒体。
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列を含む第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列との組、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組、及び、前記置換元文字列として前記第1の文字列に前記第3の文字列のうち前記第2の文字列に含まれない文字列を加えた文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することにより、前記統合を行う付記19〜付記22の何れか1項記載の文字列置換プログラム又は記録媒体。
前記複数種の置換テーブルには、異体字変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、濁音除去変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、漢数字変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、英数字半角化変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブル、及び、略称正式化変換が行われるように前記置換元文字列と前記置換先文字列とが対応付けて登録された置換テーブルのうち、2つ以上の置換テーブルが含まれる付記19〜付記23の何れか1項記載の文字列置換プログラム又は記録媒体。
前記探索した前記置換対象文字列に含まれる前記置換元文字列を、前記置換元文字列と対応付けられた置換先文字列に置換する付記19〜付記24の何れか1項記載の文字列置換プログラム又は記録媒体。
前記記録した前記識別情報に対応する前記置換元文字列のうち、長さがより長く、前記置換対象文字列上で重複していない前記置換元文字列を、前記置換対象文字列に含まれる前記置換元文字列として選択する付記19〜付記25の何れか1項記載の文字列置換プログラム又は記録媒体。
前記置換先文字列と対応付けられた前記置換元文字列の先頭から1文字ずつ取り出すと共に、前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に、前記取り出した文字がラベルとして付与された枝が存在しない場合は、前記取り出した文字以降の文字がラベルとして付与された枝とノードを新たに作成し、前記置換元文字列の末尾に到達した場合は最後のノードに前記置換元文字列に対応する識別情報を付与することを、前記統合した置換テーブルに登録されている全ての前記置換元文字列に対して各々行うことで、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように前記トライ木を構築する付記19〜付記26の何れか1項記載の文字列置換プログラム又は記録媒体。
Ttrie=O(p1)+O(p2)+…+O(pl)
=O(p1+p2+…+pl)
=O(p) …(1)
但し、pは置換テーブル内の置換元文字列の長さの総和である。
Ttrie+Tfailurelink≒Ttrie=O(p) …(2)
Tmatching+Treplace=O(n+k)+O(q)=O(n+k+q) …(3)
Ttrie+Tfailurelink+Tmatching+Treplace
=O(p)+O(n+k)+O(q)
=O(p+n+k+q) …(4)
Tnot-unified=O(P1+N1+K1+Q1)+…+O(Pm+Nm+Km+Qm) …(5)
P=P1+P2+…+Pm
また、全ての探索処理でマッチした置換元文字列の数をKとする。
K=K1+K2+…+Km
また、全ての置換処理で置換した置換元文字列の数をQとする。
Q=Q1+Q2+…+Qm
変換対象文字列の長さの総和を各処理で同一(=N)とみなす。
N1+N2+…+Nm=N
すると、先の(5)式は次の(6)式に書替えられる。
Tnot-unified=O(P+mN+K+Q) …(6)
Tunified=O(P'+N'+K'+Q') …(7)
14 置換テーブル記憶部
16 置換テーブル統合部
18 DFA置換部
20 マッチング処理部
22 マッチング結果統合部
24 トライ木構築部
26 フェイリアリンク追加部
28 置換元文字列探索部
30 文字列置換部
32 マスタDB記憶部
36 コンピュータ・システム
38 アプリケーションサーバ
40 端末装置
42 DBサーバ
44 コンピュータ・ネットワーク
46 CPU
48 メモリ
50 記憶部
56 名寄せ処理プログラム
96 マスタDB
102 枝
104 ノード
106 フェイリアリンク
Claims (16)
- 置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合する統合部と、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合部によって統合された置換テーブルに登録されている前記置換元文字列を網羅するように構築するトライ木構築部と、
前記トライ木構築部によって構築された前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行うフェイリアリンク追加部と、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する探索部と、
を含み、
前記統合部は、第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列としての前記第2の文字列と前記置換先文字列としての第3の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列としての前記第3の文字列との組を前記単一の置換テーブルに登録することを含む処理により、前記統合を行う文字列置換装置。 - 置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合する統合部と、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合部によって統合された置換テーブルに登録されている前記置換元文字列を網羅するように構築するトライ木構築部と、
前記トライ木構築部によって構築された前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行うフェイリアリンク追加部と、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する探索部と、
を含み、
前記統合部は、第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列に含まれる第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列として前記第2の文字列のうち前記第3の文字列を前記第4の文字列に置き換えた文字列との組、及び、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することを含む処理により、前記統合を行う文字列置換装置。 - 置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合する統合部と、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合部によって統合された置換テーブルに登録されている前記置換元文字列を網羅するように構築するトライ木構築部と、
前記トライ木構築部によって構築された前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行うフェイリアリンク追加部と、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する探索部と、
を含み、
前記統合部は、第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列を含む第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列との組、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組、及び、前記置換元文字列として前記第1の文字列に前記第3の文字列のうち前記第2の文字列に含まれない文字列を加えた文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することを含む処理により、前記統合を行う文字列置換装置。 - 前記統合部は、複数種の置換テーブルに、同一の前記置換元文字列が異なる前記置換先文字列と対応付けられて登録されていた場合に、複数種の置換テーブルのうち適用順が先の置換テーブルに登録されていた前記置換元文字列と前記置換先文字列との組を前記単一の置換テーブルに登録することにより、前記統合を行う請求項1〜請求項3の何れか1項記載の文字列置換装置。
- 置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合する統合部と、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合部によって統合された置換テーブルに登録されている前記置換元文字列を網羅するように構築するトライ木構築部と、
前記トライ木構築部によって構築された前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行うフェイリアリンク追加部と、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する探索部と、
を含み、
前記統合部は、前記複数種の置換テーブルのうち適用順が最上位の第1置換テーブルと、前記複数種の置換テーブルのうち適用順が前記第1置換テーブルよりも低い第2置換テーブルと、に、同一の前記置換元文字列が異なる前記置換先文字列と対応付けられて登録されていた場合に、複数種の置換テーブルのうち前記第1置換テーブルに登録されていた前記置換元文字列と前記置換先文字列との組を前記単一の置換テーブルに登録することを含む処理により前記第1置換テーブルと前記第2置換テーブルとを統合し、統合後の前記単一の置換テーブルを次の前記第1置換テーブルに置き換え、かつ前記第2置換テーブルとして用いる置換テーブルを適用順の降順に切り替えながら繰り返すことを含む処理により、前記統合を行う文字列置換装置。 - 前記探索部によって探索された前記置換対象文字列に含まれる前記置換元文字列を、前記置換元文字列と対応付けられた置換先文字列に置換する置換部を更に備えた請求項1〜請求項5の何れか1項記載の文字列置換装置。
- 前記探索部は、記録した前記識別情報に対応する前記置換元文字列のうち、長さがより長く、前記置換対象文字列上で重複していない前記置換元文字列を、前記置換対象文字列に含まれる前記置換元文字列として選択する請求項1〜請求項6の何れか1項記載の文字列置換装置。
- 前記トライ木構築部は、前記置換先文字列と対応付けられた前記置換元文字列の先頭から1文字ずつ取り出すと共に、前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に、前記取り出した文字がラベルとして付与された枝が存在しない場合は、前記取り出した文字以降の文字がラベルとして付与された枝とノードを新たに作成し、前記置換元文字列の末尾に到達した場合は最後のノードに前記置換元文字列に対応する識別情報を付与することを、前記統合部によって統合された置換テーブルに登録されている全ての前記置換元文字列に対して各々行うことで、前記統合された置換テーブルに登録されている前記置換元文字列を網羅するように前記トライ木を構築する請求項1〜請求項7の何れか1項記載の文字列置換装置。
- コンピュータが、
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合し、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように構築し、
前記構築した前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行い、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する
ことを含む処理を実行する文字列置換方法であって、
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列としての前記第2の文字列と前記置換先文字列としての第3の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列としての前記第3の文字列との組を前記単一の置換テーブルに登録することを含む処理により、前記統合を行う文字列置換方法。 - コンピュータが、
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合し、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように構築し、
前記構築した前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行い、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する
ことを含む処理を実行する文字列置換方法であって、
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列に含まれる第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列として前記第2の文字列のうち前記第3の文字列を前記第4の文字列に置き換えた文字列との組、及び、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することを含む処理により、前記統合を行う文字列置換方法。 - コンピュータが、
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合し、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように構築し、
前記構築した前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行い、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する
ことを含む処理を実行する文字列置換方法であって、
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列を含む第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列との組、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組、及び、前記置換元文字列として前記第1の文字列に前記第3の文字列のうち前記第2の文字列に含まれない文字列を加えた文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することを含む処理により、前記統合を行う文字列置換方法。 - コンピュータが、
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合し、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように構築し、
前記構築した前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行い、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する
ことを含む処理を実行する文字列置換方法であって、
前記複数種の置換テーブルのうち適用順が最上位の第1置換テーブルと、前記複数種の置換テーブルのうち適用順が前記第1置換テーブルよりも低い第2置換テーブルと、に、同一の前記置換元文字列が異なる前記置換先文字列と対応付けられて登録されていた場合に、複数種の置換テーブルのうち前記第1置換テーブルに登録されていた前記置換元文字列と前記置換先文字列との組を前記単一の置換テーブルに登録することを含む処理により前記第1置換テーブルと前記第2置換テーブルとを統合し、統合後の前記単一の置換テーブルを次の前記第1置換テーブルに置き換え、かつ前記第2置換テーブルとして用いる置換テーブルを適用順の降順に切り替えながら繰り返すことを含む処理により、前記統合を行う文字列置換方法。 - コンピュータに、
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合し、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように構築し、
前記構築した前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行い、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する
ことを含む処理を行わせるための文字列置換プログラムであって、
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列としての前記第2の文字列と前記置換先文字列としての第3の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列としての前記第3の文字列との組を前記単一の置換テーブルに登録することを含む処理により、前記統合を行う文字列置換プログラム。 - コンピュータに、
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合し、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように構築し、
前記構築した前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行い、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する
ことを含む処理を行わせるための文字列置換プログラムであって、
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列に含まれる第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての前記第1の文字列と前記置換先文字列として前記第2の文字列のうち前記第3の文字列を前記第4の文字列に置き換えた文字列との組、及び、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することを含む処理により、前記統合を行う文字列置換プログラム。 - コンピュータに、
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合し、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように構築し、
前記構築した前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行い、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する
ことを含む処理を行わせるための文字列置換プログラムであって、
第1の置換テーブルに、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列とが対応付けられて登録され、第2の置換テーブルに、前記置換元文字列として前記第2の文字列を含む第3の文字列と前記置換先文字列としての第4の文字列とが対応付けられて登録され、かつ、前記第1の置換テーブルが前記第2の置換テーブルよりも適用順が先の場合に、前記置換元文字列としての第1の文字列と前記置換先文字列としての第2の文字列との組、前記置換元文字列としての第3の文字列と前記置換先文字列としての第4の文字列との組、及び、前記置換元文字列として前記第1の文字列に前記第3の文字列のうち前記第2の文字列に含まれない文字列を加えた文字列と前記置換先文字列としての第4の文字列との組を、前記単一の置換テーブルに登録することを含む処理により、前記統合を行う文字列置換プログラム。 - コンピュータに、
置換元文字列と置換先文字列とが対応付けられて登録された複数種の置換テーブルを単一の置換テーブルに統合し、
複数のノードと、一対の前記ノードの間を連結し1文字のラベルが付与された複数の枝と、を含み、一端が同一のノードに連結された個々の枝に付与された前記ラベルの文字が互いに相違し、ルートノードから何れかのノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列が、置換先文字列と対応付けられた置換元文字列に一致し、かつ前記何れかのノードに前記置換元文字列に対応する識別情報が付与されたトライ木を、前記統合した置換テーブルに登録されている前記置換元文字列を網羅するように構築し、
前記構築した前記トライ木に含まれる前記ルートノードから第1のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列の最長接尾辞が、前記ルートノードから前記第1のノードと異なる第2のノードに至るルート上の複数の枝に付与された前記ラベルの文字で表される文字列に一致する場合に、前記第1のノードから前記第2のノードへ向かうフェイリアリンクを追加することを、前記トライ木に含まれる全てのノードを前記第1のノードとして各々行い、
置換対象文字列の先頭から1文字ずつ取り出すと共に、前記トライ木の前記ルートノードを初期ノードとし、一端が現在のノードに連結された枝の中に取り出した文字がラベルとして付与された枝が存在する場合は、前記枝の他端に連結されたノードへ移動し、一端が現在のノードに連結された枝の中に前記取り出した文字がラベルとして付与された枝が存在せず、現在のノードに前記フェイリアリンクの基端が連結されている場合は、前記フェイリアリンクの先端に連結されたノードへ移動し、移動先のノードに識別情報が付与されている場合は識別情報を記録することを、前記置換対象文字列から全ての文字を取り出す迄繰り返すことで、前記置換対象文字列に含まれる前記置換元文字列を探索する
ことを含む処理を行わせるための文字列置換プログラムであって、
前記複数種の置換テーブルのうち適用順が最上位の第1置換テーブルと、前記複数種の置換テーブルのうち適用順が前記第1置換テーブルよりも低い第2置換テーブルと、に、同一の前記置換元文字列が異なる前記置換先文字列と対応付けられて登録されていた場合に、複数種の置換テーブルのうち前記第1置換テーブルに登録されていた前記置換元文字列と前記置換先文字列との組を前記単一の置換テーブルに登録することを含む処理により前記第1置換テーブルと前記第2置換テーブルとを統合し、統合後の前記単一の置換テーブルを次の前記第1置換テーブルに置き換え、かつ前記第2置換テーブルとして用いる置換テーブルを適用順の降順に切り替えながら繰り返すことを含む処理により、前記統合を行う文字列置換プログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012185218A JP6136142B2 (ja) | 2012-08-24 | 2012-08-24 | 文字列置換装置、方法及びプログラム |
| US13/973,436 US9165020B2 (en) | 2012-08-24 | 2013-08-22 | String substitution apparatus, string substitution method and storage medium |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2012185218A JP6136142B2 (ja) | 2012-08-24 | 2012-08-24 | 文字列置換装置、方法及びプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2014044498A JP2014044498A (ja) | 2014-03-13 |
| JP6136142B2 true JP6136142B2 (ja) | 2017-05-31 |
Family
ID=50188878
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2012185218A Expired - Fee Related JP6136142B2 (ja) | 2012-08-24 | 2012-08-24 | 文字列置換装置、方法及びプログラム |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US9165020B2 (ja) |
| JP (1) | JP6136142B2 (ja) |
Families Citing this family (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP6175924B2 (ja) * | 2013-06-13 | 2017-08-09 | 富士通株式会社 | プログラム、情報処理システムおよびデータ更新制御方法 |
| US10977005B2 (en) * | 2017-06-14 | 2021-04-13 | International Business Machines Corporation | Congnitive development of DevOps pipeline |
| CN108427671B (zh) * | 2018-01-25 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 信息转换方法和装置、存储介质及电子装置 |
Family Cites Families (16)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4906991A (en) * | 1988-04-29 | 1990-03-06 | Xerox Corporation | Textual substitution data compression with finite length search windows |
| US5058144A (en) * | 1988-04-29 | 1991-10-15 | Xerox Corporation | Search tree data structure encoding for textual substitution data compression systems |
| US7047279B1 (en) * | 2000-05-05 | 2006-05-16 | Accenture, Llp | Creating collaborative application sharing |
| JP2005011049A (ja) | 2003-06-19 | 2005-01-13 | Nec Soft Ltd | データベース統合装置 |
| JP4753755B2 (ja) * | 2006-03-14 | 2011-08-24 | 富士通株式会社 | データ変換方法、装置及びプログラム |
| US8005847B2 (en) * | 2006-10-20 | 2011-08-23 | Adobe Systems Incorporated | Pattern-based file relationship inference |
| US8341165B2 (en) * | 2007-12-03 | 2012-12-25 | Intel Corporation | Method and apparatus for searching extensible markup language (XML) data |
| JP2009245308A (ja) * | 2008-03-31 | 2009-10-22 | Fujitsu Ltd | 文書校正支援プログラム、文書校正支援方法および文書校正支援装置 |
| KR101245631B1 (ko) * | 2008-09-05 | 2013-03-22 | 니폰 덴신 덴와 가부시끼가이샤 | 근사조합장치, 근사조합방법, 프로그램 및 기록매체 |
| JP5293301B2 (ja) * | 2009-03-16 | 2013-09-18 | 富士通株式会社 | 検索装置、検索方法および記憶媒体 |
| JP5167202B2 (ja) | 2009-06-24 | 2013-03-21 | 株式会社日立システムズ | カナ氏名によるデータの名寄せ処理方法および名寄せ処理システム、ならびにそのためのプログラム |
| US8156213B1 (en) * | 2009-07-27 | 2012-04-10 | Juniper Networks, Inc. | Merging network device configuration schemas |
| US8782268B2 (en) * | 2010-07-20 | 2014-07-15 | Microsoft Corporation | Dynamic composition of media |
| US8775476B2 (en) * | 2010-12-30 | 2014-07-08 | Skai, Inc. | System and method for creating, deploying, integrating, and distributing nodes in a grid of distributed graph databases |
| US8631387B2 (en) * | 2011-03-31 | 2014-01-14 | Coral Networks, Inc. | System and method for the structuring and interpretation of organic computer programs |
| US8914859B2 (en) * | 2011-11-07 | 2014-12-16 | International Business Machines Corporation | Managing the progressive legible obfuscation and de-obfuscation of public and quasi-public broadcast messages |
-
2012
- 2012-08-24 JP JP2012185218A patent/JP6136142B2/ja not_active Expired - Fee Related
-
2013
- 2013-08-22 US US13/973,436 patent/US9165020B2/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| JP2014044498A (ja) | 2014-03-13 |
| US20140067769A1 (en) | 2014-03-06 |
| US9165020B2 (en) | 2015-10-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11256856B2 (en) | Method, device, and system, for identifying data elements in data structures | |
| US9633010B2 (en) | Converting data into natural language form | |
| JP5138046B2 (ja) | 検索システム、検索方法およびプログラム | |
| CN106599280B (zh) | 确定网页节点路径信息的方法及装置 | |
| CN109766100A (zh) | 数据处理方法及装置 | |
| JP2014225181A5 (ja) | ||
| JP6136142B2 (ja) | 文字列置換装置、方法及びプログラム | |
| CN111444411A (zh) | 网络数据增量采集方法、装置、设备及存储介质 | |
| CN113434413B (zh) | 基于数据差异的数据测试方法、装置、设备及存储介质 | |
| JP7082542B2 (ja) | 軌跡検索装置及び軌跡検索プログラム | |
| CN102262658A (zh) | 一种基于实体的自底向上Web数据抽取方法 | |
| JPWO2006038498A1 (ja) | 配列の生成方法、及び、配列生成プログラム | |
| CN110188207A (zh) | 知识图谱构建方法及装置、可读存储介质、电子设备 | |
| JP6604207B2 (ja) | 関係情報生成方法、装置、及びプログラム | |
| CN120353812A (zh) | 冲突检测图谱构建方法、装置、计算机设备及存储介质 | |
| JP5894273B2 (ja) | 文書関連付け方法および文書検索方法、文書関連付け装置および文書検索装置、並びにそのためのプログラム | |
| RU2498401C2 (ru) | Способ обнаружения текстовых объектов | |
| US12493590B2 (en) | Method and system for deduplicating point of interest databases | |
| JP2014235584A (ja) | 文書分析システム、文書分析方法およびプログラム | |
| JP5564442B2 (ja) | 文章検索装置 | |
| CN108182210B (zh) | 基于页面信息解析的服务语义获取方法及系统 | |
| JP2015106216A (ja) | 住民住所管理システム及び住民住所管理方法 | |
| US11868726B2 (en) | Named-entity extraction apparatus, method, and non-transitory computer readable storage medium | |
| JP2014115718A (ja) | 形態素解析装置、方法、及びプログラム | |
| Chang et al. | On chinese postal address and associated information extraction |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150512 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160615 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160621 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160822 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20170117 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20170209 |
|
| 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: 20170404 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20170417 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6136142 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| LAPS | Cancellation because of no payment of annual fees |
