JP7702933B2 - 解析装置、解析方法及び解析プログラム - Google Patents
解析装置、解析方法及び解析プログラム Download PDFInfo
- Publication number
- JP7702933B2 JP7702933B2 JP2022501600A JP2022501600A JP7702933B2 JP 7702933 B2 JP7702933 B2 JP 7702933B2 JP 2022501600 A JP2022501600 A JP 2022501600A JP 2022501600 A JP2022501600 A JP 2022501600A JP 7702933 B2 JP7702933 B2 JP 7702933B2
- Authority
- JP
- Japan
- Prior art keywords
- analysis
- string
- unit
- attribute
- analysis device
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
- G06F40/211—Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Stored Programmes (AREA)
- Machine Translation (AREA)
Description
図1は、第1の実施形態に係る表示システムの構成例を示す図である。図1に示すように、表示システムは、解析装置10及び表示装置20を有する。解析装置10は、例えばサーバである。表示装置20は、例えばパーソナルコンピュータである。
parse : N ×I → I
HTML::=‘<’Name‘>’HTML*‘</’Name‘>’|‘<’Name‘>’
Name::=[a-zA-Z]+
<EBNF>
HTML=scope(‘<’bind(v,Name)‘>’HTML*‘</’match(v,Name)‘>’)|‘<’Name‘>’
Name=[a-zA-Z]+
参考文献1:KURAMITSU, K. A symbol-based extension of parsing expression grammars and context-sensitive packrat parsing. In Proceedings of the 10thACM SIGPLAN International Conference on Software Language Engineering (New York, NY, USA, 2017), SLE 2017, ACM, pp. 26-37.
<V-PEG>
HTML=scope(‘<’bind(v,Name)‘>’HTML*‘</’match(v,Name)‘>’)/‘<’Name‘>’
Name=[a-zA-Z]+
G=(N,Σ,R,V,eS)
N={HTML,Name}
Σ={‘<’,’>’,’/’,’a’,…,’z’,’A’,…,’Z’}
R:上記のHTMLとNameのルールの集合
V={v}
eS=HTML
参考文献2:FORD, B. Packrat parsing:: Simple, powerful, lazy, linear time, functional pearl. In Proceedings of the Seventh ACM SIGPLAN International Conference on Functional Programming (New York, NY, USA, 2002), ICFP’02, ACM, pp. 36-47.
図6は、第1の実施形態に係る解析装置の処理の流れを示すフローチャートである。図6に示すように、まず、解析装置10は、V-PEGと文字列の入力を受け付ける(ステップS11)。次に、解析装置10は、parse関数を実行し解析を行う(ステップS12)。そして、解析装置10は、解析結果を出力する(ステップS13)。
これまで説明してきたように、解析部131は、所定の終端記号に変数を対応付けたPEGで記述された文法を基に、第1の文字列の構文解析を行う。また、追加部132は、第1の文字列の一部であって、解析部131により終端記号に対応することが解析された第2の文字列に所定の属性を付与した要素を、変数に追加する。また、抽出部133は、変数から、各属性の最新の要素を抽出する。また、判定部134は、抽出部133によって抽出された要素が文脈に関する所定の条件に合致するか否かを判定する。このように、解析装置10は、変数に格納された要素のうち、最新でないものを抽出しないようにする。このため、本実施形態によれば、文脈に依存したパターンに対応した構文解析にかかる時間を短縮することができる。本実施形態によれば、従来の技術では指数関数時間で増加していた処理時間を、多項式時間に抑えることができる。
ここで、本実施形態との対比のために、従来のPackrat Parsingを説明する。ここでは、HTMLの文法が以下のように記述されているものとする。
HTML::=‘<’Name‘>’HTML*‘</’Name‘>’|‘<’Name‘>’
Name::=[a-zA-Z]+
第1の実施形態では、グローバル変数が配列である場合を例に挙げて説明した。一方で、グローバル変数は配列以外のデータであってもよい。例えば、グローバル変数はスタックであってもよい。
check(opening_tag):
if S.empty():
return false
closing_tag= S.top()
return opening_tag==closing_tag
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散及び統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散又は統合して構成することができる。さらに、各装置にて行われる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
一実施形態として、解析装置10は、パッケージソフトウェアやオンラインソフトウェアとして上記の解析処理を実行する解析プログラムを所望のコンピュータにインストールさせることによって実装できる。例えば、上記の解析プログラムを情報処理装置に実行させることにより、情報処理装置を解析装置10として機能させることができる。ここで言う情報処理装置には、デスクトップ型又はノート型のパーソナルコンピュータが含まれる。また、その他にも、情報処理装置にはスマートフォン、携帯電話機やPHS(Personal Handyphone System)等の移動体通信端末、さらには、PDA(Personal Digital Assistant)等のスレート端末等がその範疇に含まれる。
20 表示装置
11 インタフェース部
12 記憶部
13 制御部
121 文法情報
122 解析結果情報
131 解析部
132 追加部
133 抽出部
134 判定部
135 表示制御部
Claims (6)
- 文字列をマッチさせるための表現であって、終端記号と非終端記号により属性に対応する部分が示された表現に、第1の文字列がマッチするか否かを解析する解析部と、
前記第1の文字列が前記表現にマッチした場合、前記第1の文字列の前記属性に対応する部分のうちの非終端記号にマッチする第2の文字列に前記属性を付与した要素を、変数に追加する追加部と、
前記変数から、各属性の最新の要素を抽出する抽出部と、
前記抽出部によって抽出された要素が文脈に関する所定の条件に合致するか否かを判定する判定部と、
を有することを特徴とする解析装置。 - 前記追加部は、前記属性をキーとし、前記第2の文字列をバリューとするキーバリュー形式の要素を、配列である前記変数の右端に追加し、
前記抽出部は、前記配列のキーが同じである要素のうち、最も右側にある要素を抽出することを特徴とする請求項1に記載の解析装置。 - 前記追加部は、前記属性に対応するスタックに、前記第2の文字列をpushし、
前記抽出部は、前記スタックのtopをpopすることによって抽出することを特徴とする請求項1に記載の解析装置。 - 前記解析部は、HTMLの文法を基に前記第1の文字列の構文解析を行い、
前記追加部は、前記第1の文字列における開きタグの中の文字列に、開きタグを示す属性を付与した要素を前記変数に追加し、
前記抽出部は、開きタグを示す属性の要素のうち最新の要素を抽出し、
前記判定部は、前記抽出部によって抽出された要素の文字列と、前記第1の文字列における閉じタグの中の文字列が一致するか否かを判定することを特徴とする請求項1から3のいずれか1項に記載の解析装置。 - 解析装置によって実行される解析方法であって、
文字列をマッチさせるための表現であって、終端記号と非終端記号により属性に対応する部分が示された表現に、第1の文字列がマッチするか否かを解析する解析工程と、
前記第1の文字列が前記表現にマッチした場合、前記第1の文字列の前記属性に対応する部分のうちの非終端記号にマッチする第2の文字列に前記属性を付与した要素を、変数に追加する追加工程と、
前記変数から、各属性の最新の要素を抽出する抽出工程と、
前記抽出工程によって抽出された要素が文脈に関する所定の条件に合致するか否かを判定する判定工程と、
を含むことを特徴とする解析方法。 - コンピュータを、請求項1から4のいずれか1項に記載の解析装置として機能させるための解析プログラム。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2020/007268 WO2021166271A1 (ja) | 2020-02-21 | 2020-02-21 | 解析装置、解析方法及び解析プログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2021166271A1 JPWO2021166271A1 (ja) | 2021-08-26 |
| JP7702933B2 true JP7702933B2 (ja) | 2025-07-04 |
Family
ID=77391887
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2022501600A Active JP7702933B2 (ja) | 2020-02-21 | 2020-02-21 | 解析装置、解析方法及び解析プログラム |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US11947907B2 (ja) |
| JP (1) | JP7702933B2 (ja) |
| WO (1) | WO2021166271A1 (ja) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN115576535B (zh) * | 2022-11-10 | 2023-03-31 | 商飞软件有限公司 | 一种表达式解析器 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7552116B2 (en) * | 2004-08-06 | 2009-06-23 | The Board Of Trustees Of The University Of Illinois | Method and system for extracting web query interfaces |
| JP2012063868A (ja) * | 2010-09-14 | 2012-03-29 | Internatl Business Mach Corp <Ibm> | 言語処理パーサーを組み合わせて、組み合わせパーサーを生成する方法、並びにそのコンピュータ及びコンピュータ・プログラム |
| JP5462819B2 (ja) * | 2011-03-01 | 2014-04-02 | 日本電信電話株式会社 | 基本木獲得装置、構文解析装置、方法、及びプログラム |
| US8997233B2 (en) * | 2011-04-13 | 2015-03-31 | Microsoft Technology Licensing, Llc | Detecting script-based malware using emulation and heuristics |
| US10055399B2 (en) * | 2014-07-11 | 2018-08-21 | Loring G. Craymer, III | Method and system for linear generalized LL recognition and context-aware parsing |
| AU2019337773B2 (en) * | 2018-09-11 | 2024-02-15 | Mastercard Technologies Canada ULC | Transpilation of fraud detection rules to native language source code |
-
2020
- 2020-02-21 WO PCT/JP2020/007268 patent/WO2021166271A1/ja not_active Ceased
- 2020-02-21 US US17/799,270 patent/US11947907B2/en active Active
- 2020-02-21 JP JP2022501600A patent/JP7702933B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JPWO2021166271A1 (ja) | 2021-08-26 |
| WO2021166271A1 (ja) | 2021-08-26 |
| US20230071959A1 (en) | 2023-03-09 |
| US11947907B2 (en) | 2024-04-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12141553B2 (en) | Programmatically generating evaluation data sets for code generation models | |
| CN108089974B (zh) | 利用定义的输入格式来测试应用 | |
| CN111459537B (zh) | 冗余代码去除方法、装置、设备与计算机可读存储介质 | |
| US20230418565A1 (en) | Validating and providing proactively generated code suggestions | |
| US9038033B1 (en) | Techniques and mechanisms for web application minification | |
| US12014155B2 (en) | Constrained prefix matching for generating next token predictions | |
| US10474482B2 (en) | Software application dynamic linguistic translation system and methods | |
| US11775290B2 (en) | Detection of API backward compatibility across software versions | |
| CN113050808A (zh) | 在输入框中突出显示目标文本的方法及装置 | |
| US12530527B2 (en) | Random token segmentation for training next token prediction models | |
| JP2023152843A (ja) | コード説明可能性のためのコードの強化 | |
| KR100692172B1 (ko) | 종합 문자열 분석기 및 그 분석 방법 | |
| JP7702933B2 (ja) | 解析装置、解析方法及び解析プログラム | |
| US9292522B2 (en) | Method and system for automating the editing of computer files | |
| CN116028028B (zh) | 请求函数生成方法、装置、设备及存储介质 | |
| CN111459469A (zh) | 项目代码初始化方法、装置及设备 | |
| CN119045829A (zh) | 一种编译方法、装置、电子设备及可读存储介质 | |
| JP7800678B2 (ja) | 修正装置、修正方法及び修正プログラム | |
| JP7355211B2 (ja) | シグネチャ生成装置、シグネチャ生成方法およびシグネチャ生成プログラム | |
| US20150324333A1 (en) | Systems and methods for automatically generating hyperlinks | |
| CN114168189A (zh) | 一种Vue项目代码的翻译方法、设备及介质 | |
| JP7800679B2 (ja) | 検証装置、検証方法及び検証プログラム | |
| JP7424393B2 (ja) | 推定システム、推定方法及び推定プログラム | |
| Sochor et al. | A refinement based algorithm for learning program input grammars | |
| US20240378257A1 (en) | Display control device, display control method, and display control program |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220602 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230613 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230809 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231003 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231204 |
|
| A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20240130 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20240425 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20250624 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7702933 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
| R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |