Ë
    çÍ:j÷Ý  ã                   óü   — d Z ddlZddlZddlZddlZddlmZmZmZm	Z	m
Z
mZmZmZmZmZ ddlmZmZ ddlmZ ddlmZmZ ddlmZ ddlmZmZ dd	lmZ dd
lm Z  ddl!m"Z"  G d„ d«      Z#d„ Z$e%dk(  r e$«        dgZ&y)zl
A graphical tool for exploring the regular expression based chunk
parser ``nltk.chunk.RegexpChunkParser``.
é    N)
ÚButtonÚCanvasÚCheckbuttonÚFrameÚIntVarÚLabelÚMenuÚ	ScrollbarÚTextÚTk)ÚaskopenfilenameÚasksaveasfilename)ÚFont)Ú
ChunkScoreÚRegexpChunkParser)ÚRegexpChunkRule)Ú	conll2000Útreebank_chunk)ÚShowText)ÚTree)Úin_idlec                   ó   — e Zd ZdZi dd“dd“dd“dd	“d
d“dd“dd“dd“dd“dd“dd“dd“dd“dd“dd“d d!“d"d#“i d$d%“d&d'“d(d)“d*d+“d,d-“d.d/“d0d1“d2d3“d4d5“d6d7“d8d9“d:d;“d<d=“d>d?“d@dA“dBdC“dDdE“¥dFdGdHdIdJdKdLdMdNdOdPdQœ¥Zg dR¢ZdS edT¬U«      fdV edW¬U«      fdX edY¬Z«      fd[ ed\¬]«      fd^ ed\¬]«      fd_ ed`d`¬a«      fdb edcdd¬a«      fde edf¬U«      fdg edh¬U«      fdi edj¬U«      fg
ZdkZ	 dlZ		 dmZ
	 dnZ	 doZ	  edpdqdrdrdkdsdtdu¬v«      Z edldldrdrdwdkdsdtdu¬x«	      Z edydzd{d{dkdsdtdud|¬}«	      Z ed~dsdt¬«      Z ed€d�¬‚«      Z edƒdtdtd„¬…«      Z ed{d{dkdsdtd†d‡¬ˆ«      Z edƒdƒdƒ¬‰«      ZdŠZdrZ edr¬Z«      Z edŠ¬Z«      Zd‹ZdŒ„ Z	 	 	 	 	 d³dŽ„Zd�„ Zd�„ Zd‘„ Zd’„ Zd“Z d”Z!d•„ Z"d”Z#d–„ Z$d—„ Z%d˜„ Z&d”Z'd™„ Z(dš„ Z)d›„ Z*dœ„ Z+d�„ Z,dž„ Z-dŸ„ Z.d „ Z/d¡„ Z0d´d¢„Z1d£„ Z2d¤„ Z3d¥„ Z4d¦„ Z5d´d§„Z6d¨„ Z7d©„ Z8dª„ Z9d«Z:d´d¬„Z;d´d­„Z<d´d®„Z=d¯„ Z>d´d°„Z?d´d±„Z@d²„ ZAy�)µÚRegexpChunkAppz¢
    A graphical tool for exploring the regular expression based chunk
    parser ``nltk.chunk.RegexpChunkParser``.

    See ``HELP`` for instructional text.
    ÚCCzCoordinating conjunctionzPRP$zPossessive pronounÚCDzCardinal numberÚRBÚAdverbÚDTÚ
DeterminerÚRBRzAdverb, comparativeÚEXzExistential thereÚRBSzAdverb, superlativeÚFWzForeign wordÚRPÚParticleÚJJÚ	AdjectiveÚTOÚtoÚJJRzAdjective, comparativeÚUHÚInterjectionÚJJSzAdjective, superlativeÚVBzVerb, base formÚLSzList item markerÚVBDzVerb, past tenseÚMDÚModalÚNNSzNoun, pluralÚNNzNoun, singular or massÚVBNzVerb, past participleÚVBZzVerb,3rd ps. sing. presentÚNNPzProper noun, singularÚNNPSzProper noun pluralÚWDTzwh-determinerÚPDTÚPredeterminerÚWPz
wh-pronounÚPOSzPossessive endingzWP$zPossessive wh-pronounÚPRPzPersonal pronounÚWRBz	wh-adverbú(zopen parenthesisú)zclose parenthesisz
open quoteÚcommazclose quoteÚperiodzpound sign (currency marker)zdollar sign (currency marker)zPreposition/subord. conjunctionz#Symbol (mathematical or scientific)zVerb, gerund/present participlezVerb, non-3rd ps. sing. presentÚcolon)z``ú,z''ú.ú#ú$ÚINÚSYMÚVBGÚVBPú:))ÚHelpÚ20a-  Welcome to the regular expression chunk-parser grammar editor.  You can use this editor to develop and test chunk parser grammars based on NLTK's RegexpChunkParser class.

Use this box ('Help') to learn more about the editor; click on the tabs for help on specific topics:<indent>
Rules: grammar rule types
Regexps: regular expression syntax
Tags: part of speech tags
</indent>
Use the upper-left box ('Grammar') to edit your grammar.  Each line of your grammar specifies a single 'rule', which performs an action such as creating a chunk or merging two chunks.

The lower-left box ('Development Set') runs your grammar on the development set, and displays the results.  Your grammar's chunks are <highlight>highlighted</highlight>, and the correct (gold standard) chunks are <underline>underlined</underline>.  If they match, they are displayed in <green>green</green>; otherwise, they are displayed in <red>red</red>.  The box displays a single sentence from the development set at a time; use the scrollbar or the next/previous buttons view additional sentences.

The lower-right box ('Evaluation') tracks the performance of your grammar on the development set.  The 'precision' axis indicates how many of your grammar's chunks are correct; and the 'recall' axis indicates how many of the gold standard chunks your system generated.  Typically, you should try to design a grammar that scores high on both metrics.  The exact precision and recall of the current grammar, as well as their harmonic mean (the 'f-score'), are displayed in the status bar at the bottom of the window.)ÚRulesÚ10aÉ  <h1>{...regexp...}</h1><indent>
Chunk rule: creates new chunks from words matching regexp.</indent>

<h1>}...regexp...{</h1><indent>
Strip rule: removes words matching regexp from existing chunks.</indent>

<h1>...regexp1...}{...regexp2...</h1><indent>
Split rule: splits chunks that match regexp1 followed by regexp2 in two.</indent>

<h1>...regexp...{}...regexp...</h1><indent>
Merge rule: joins consecutive chunks that match regexp1 and regexp2</indent>
)ÚRegexpsú10 60aZ  <h1>Pattern		Matches...</h1>
<hangindent>	<<var>T</var>>	a word with tag <var>T</var> (where <var>T</var> may be a regexp).
	<var>x</var>?	an optional <var>x</var>
	<var>x</var>+	a sequence of 1 or more <var>x</var>'s
	<var>x</var>*	a sequence of 0 or more <var>x</var>'s
	<var>x</var>|<var>y</var>	<var>x</var> or <var>y</var>
	.	matches any character
	(<var>x</var>)	Treats <var>x</var> as a group
	# <var>x...</var>	Treats <var>x...</var> (to the end of the line) as a comment
	\<var>C</var>	matches character <var>C</var> (useful when <var>C</var> is a special character like + or #)
</hangindent>
<h1>Examples:</h1>
<hangindent>	<regexp><NN></regexp>
		Matches <match>"cow/NN"</match>
		Matches <match>"green/NN"</match>
	<regexp><VB.*></regexp>
		Matches <match>"eating/VBG"</match>
		Matches <match>"ate/VBD"</match>
	<regexp><IN><DT><NN></regexp>
		Matches <match>"on/IN the/DT car/NN"</match>
	<regexp><RB>?<VBD></regexp>
		Matches <match>"ran/VBD"</match>
		Matches <match>"slowly/RB ate/VBD"</match>
\t<regexp><\#><CD> # This is a comment...</regexp>\n		Matches <match>"#/# 100/CD"</match>
</hangindent>)ÚTagsrS   zB<h1>Part of Speech Tags:</h1>
<hangindent><<TAGSET>></hangindent>
Úredz#a00©Ú
foregroundÚgreenz#080Ú	highlightz#ddd©Ú
backgroundÚ	underlineT)r\   Úh1Úindenté   ©Úlmargin1Úlmargin2Ú
hangindentr   é<   Úvarz#88fÚregexpz#ba7Úmatchz#6a6é   é   gš™™™™™É?g{®Gáz”?g{®Gáz¤?é(   é   z#efeÚgrooveé   Úword)ÚwidthÚheightr[   ÚhighlightbackgroundÚhighlightthicknessÚreliefÚborderÚwrapz#555)	ro   rp   r[   rq   rW   rr   rs   rt   ru   éF   é
   z#eef)é   )	ro   rp   r[   rq   rr   rs   rt   ru   Útabsz#9bb)r[   rs   rt   Ú	helveticaiìÿÿÿ©ÚfamilyÚsizez#777é   )r[   ÚpadxÚpadyrt   i,  i  )r[   rq   rr   rs   rt   ro   rp   )r[   Úactivebackgroundrq   z#abaé   c                 óÞ   — t        j                  dd|«      }t        j                  dd|«      }t        j                  dd|«      }|j                  «       }t        j                  dd|«      }|S )	Nú((\\.|[^#])*)(#.*)?ú\1z +ú z\n\s+z\nz	([^\\])\$z\1\\$)ÚreÚsubÚstrip)ÚselfÚgrammars     úm/home/mcse/projects/srt_converter/srt-converter-venv/lib/python3.12/site-packages/nltk/app/chunkparser_app.pyÚnormalize_grammarz RegexpChunkApp.normalize_grammar4  s[   € ä—&‘&Ð/°¸Ó@ˆä—&‘&˜˜s GÓ,ˆÜ—&‘&˜ 5¨'Ó2ˆØ—-‘-“/ˆä—&‘&˜ x°Ó9ˆØˆó    Nc                 ó&  — || _         |€| j                  }|| _        |€C|dk(  rt        j                  d«      }n(|dk(  rt        j                  «       }nt        d|z  «      ‚d| _        	 || _        	 d| _	        	 d| _
        	 || _        	 || _        	 d| _        	 d| _        	 g | _        	 d| _        	 d| _        	 d| _        	 d| _        	 t)        |¬«      | _        	 t-        «       x}| _        |j1                  d	«       |j3                  d
«       |j5                  d| j6                  «       t9        |«      | _        | j:                  j=                  d«       | j?                  |«       | jA                  |«       | jC                  |«       | jE                  |«       | jF                  jI                  «        |r;| jF                  jK                  d|dz   «       | jF                  jM                  dd«       | jO                  d«       | jQ                  «        y)aù  
        :param devset_name: The name of the development set; used for
            display & for save files.  If either the name 'treebank'
            or the name 'conll2000' is used, and devset is None, then
            devset will be set automatically.
        :param devset: A list of chunked sentences
        :param grammar: The initial grammar to display.
        :param tagset: Dictionary from tags to string descriptions, used
            for the help page.  Defaults to ``self.TAGSET``.
        Nr   z	train.txtÚtreebankzUnknown development set %sr   éÿÿÿÿ©Úchunk_labelz+50+50zRegexp Chunk Parser Appz<Control-q>éd   Úendú
Úinsertú1.0))Ú_chunk_labelÚTAGSETÚtagsetr   Úchunked_sentsr   Ú
ValueErrorÚchunkerr‹   Únormalized_grammarÚgrammar_changedÚdevsetÚdevset_nameÚdevset_indexÚ_last_keypressÚ_historyÚ_history_indexÚ_eval_grammarÚ_eval_normalized_grammarÚ_eval_indexr   Ú_eval_scorer   ÚtopÚgeometryÚtitleÚbindÚdestroyr   Ú_devset_sizeÚsetÚ_init_fontsÚ_init_widgetsÚ_init_bindingsÚ_init_menubarÚ
grammarboxÚfocusr—   Úmark_setÚshow_devsetÚupdate)rŠ   r¢   r¡   r‹   r“   r›   r«   s          rŒ   Ú__init__zRegexpChunkApp.__init__?  s
  € ð$ (ˆÔàˆ>Ø—[‘[ˆFØˆŒð ˆ>Ø˜kÒ)Ü"×0Ñ0°Ó=‘Ø˜:Ò%Ü'×5Ñ5Ó7‘ä Ð!=ÀÑ!KÓLÐLàˆŒØ7àˆŒØ)à"&ˆÔØ7à ˆÔØ;àˆŒØAà&ˆÔØ?àˆÔð	-ð  ˆÔØ=àˆŒð	8ð  ˆÔð	Ið "ˆÔð	ð )-ˆÔ%Ø5àˆÔð	5ô &°+Ô>ˆÔð	:ô ›ÐˆˆdŒhØ�‰�XÔØ�	‰	Ð+Ô,Ø�‰� §¡Ô-ô # 3›KˆÔØ×Ñ×Ñ˜cÔ"ð 	×Ñ˜ÔØ×Ñ˜3ÔØ×Ñ˜CÔ Ø×Ñ˜3ÔØ�‰×ÑÔñ Ø�O‰O×"Ñ" 5¨'°D©.Ô9Ø�O‰O×$Ñ$ X¨uÔ5ð 	×Ñ˜ÔØ�‰�rŽ   c                 ój  ‡ — |j                  d‰ j                  «       |j                  d‰ j                  «       |j                  d‰ j                  «       |j                  d‰ j                  «       |j                  dˆ fd„«       |j                  dˆ fd„«       ‰ j
                  j                  d‰ j                  «       ‰ j
                  j                  d‰ j                  «       ‰ j
                  j                  d‰ j                  «       ‰ j                  j                  d	‰ j                  «       y )
Nz<Control-n>z<Control-p>z<Control-t>z
<KeyPress>z<Control-s>c                 ó$   •— ‰j                  «       S ©N)Úsave_grammar©ÚerŠ   s    €rŒ   ú<lambda>z/RegexpChunkApp._init_bindings.<locals>.<lambda>¯  ó   ø€ ¨$×*;Ñ*;Ó*=€ rŽ   z<Control-o>c                 ó$   •— ‰j                  «       S r¾   )Úload_grammarrÀ   s    €rŒ   rÂ   z/RegexpChunkApp._init_bindings.<locals>.<lambda>°  rÃ   rŽ   z<Configure>)r®   Ú_devset_nextÚ_devset_prevÚtoggle_show_tracerº   r¶   ÚevalboxÚ
_eval_plot©rŠ   r«   s   ` rŒ   r´   zRegexpChunkApp._init_bindingsª  s×   ø€ Ø�‰� × 1Ñ 1Ô2Ø�‰� × 1Ñ 1Ô2Ø�‰� × 6Ñ 6Ô7Ø�‰�˜tŸ{™{Ô+Ø�‰�Ó =Ô>Ø�‰�Ó =Ô>Ø�‰×Ñ˜]¨D×,BÑ,BÔCØ�‰×Ñ˜]¨D×,=Ñ,=Ô>Ø�‰×Ñ˜]¨D×,=Ñ,=Ô>ð 	�‰×Ñ˜-¨¯©Õ9rŽ   c                 ó$  — t        |«      | _        | j                  j                  d«       t        d| j                  j	                  «        ¬«      | _        t        dt        | j                  j	                  «       dz  dz  «       ¬«      | _        y )Nr_   rz   r{   é   )r   Ú_sizer±   r   ÚgetÚ_fontÚintÚ
_smallfontrË   s     rŒ   r²   zRegexpChunkApp._init_fonts¸  sg   € ä˜C“[ˆŒ
Ø�
‰
�‰�rÔÜ °D·J±J·N±NÓ4DÐ3DÔEˆŒ
ÜØ¤s¨4¯:©:¯>©>Ó+;¸bÑ+@ÀBÑ+FÓ'GÐ%Hô
ˆ�rŽ   c                 ó   — t        |«      }t        |d¬«      }|j                  dd| j                  ¬«       |j                  ddd| j                  ¬«       |j                  ddd	| j                  ¬«       |j                  d
d| j
                  ¬«       |j                  dd| j                  d¬«       |j                  dd|¬«       t        |d¬«      }|j                  d| j                  dd| j                  ¬«       |j                  d| j                  dd| j                  ¬«       |j                  d| j                  dd| j                  ¬«       |j                  d| j                  dd| j                  ¬«       |j                  d| j                  dd| j                  ¬«       |j                  dd|¬«       t        |d¬«      }|j                  d| j                  d| j                  ¬ «       |j                  d!| j                  d"| j                  ¬ «       |j                  d#| j                  d$| j                  ¬ «       |j                  d%| j                  d&| j                  ¬ «       |j                  d'd|¬«       t        |d¬«      }|j                  d(d| j                  ¬«       |j                  d)d|¬«       |j                  |¬*«       y )+Nr   )ÚtearoffzReset Application)Úlabelr\   ÚcommandzSave Current GrammarzCtrl-s)rÕ   r\   ÚacceleratorrÖ   zLoad GrammarzCtrl-ozSave Grammar Historyé   ÚExitrh   zCtrl-q)rÕ   r\   rÖ   r×   ÚFile)rÕ   r\   ÚmenuÚTinyrw   )rÕ   Úvariabler\   ÚvaluerÖ   ÚSmallé   ÚMediumr_   ÚLargeé   ÚHugeé"   ÚViewz50 sentencesé2   )rÕ   rÝ   rÞ   rÖ   z100 sentencesr”   z200 sentenceséÈ   z500 sentencesiô  zDevelopment-SetÚAboutrN   )rÛ   )r	   Úadd_commandÚresetr¿   rÅ   Úsave_historyr¯   Úadd_cascadeÚadd_radiobuttonrÎ   Úresizer°   Úset_devset_sizeÚaboutÚconfig)rŠ   ÚparentÚmenubarÚfilemenuÚviewmenuÚ
devsetmenuÚhelpmenus          rŒ   rµ   zRegexpChunkApp._init_menubarÁ  só  € Ü�v“,ˆä˜¨Ô+ˆØ×ÑÐ#6À!ÈTÏZÉZÐÔXØ×ÑØ(ØØ Ø×%Ñ%ð	 	ô 	
ð 	×ÑØ ØØ Ø×%Ñ%ð	 	ô 	
ð 	×ÑØ(°BÀ×@QÑ@Qð 	ô 	
ð 	×ÑØ A¨t¯|©|Èð 	ô 	
ð 	×Ñ &°A¸HÐÔEä˜¨Ô+ˆØ× Ñ ØØ—Z‘ZØØØ—K‘Kð 	!ô 	
ð 	× Ñ ØØ—Z‘ZØØØ—K‘Kð 	!ô 	
ð 	× Ñ ØØ—Z‘ZØØØ—K‘Kð 	!ô 	
ð 	× Ñ ØØ—Z‘ZØØØ—K‘Kð 	!ô 	
ð 	× Ñ ØØ—Z‘ZØØØ—K‘Kð 	!ô 	
ð 	×Ñ &°A¸HÐÔEä˜'¨1Ô-ˆ
Ø×"Ñ"Ø Ø×&Ñ&ØØ×(Ñ(ð	 	#ô 	
ð 	×"Ñ"Ø!Ø×&Ñ&ØØ×(Ñ(ð	 	#ô 	
ð 	×"Ñ"Ø!Ø×&Ñ&ØØ×(Ñ(ð	 	#ô 	
ð 	×"Ñ"Ø!Ø×&Ñ&ØØ×(Ñ(ð	 	#ô 	
ð 	×ÑÐ"3¸qÀzÐÔRä˜¨Ô+ˆØ×Ñ 7°aÀÇÁÐÔLØ×Ñ &°A¸HÐÔEà�‰˜7ˆÕ#rŽ   c                 ó^   — | j                   r| j                  «        y| j                  «        y)NÚbreak)Ú_showing_tracer¹   Ú
show_trace©rŠ   rÁ   s     rŒ   rÈ   z RegexpChunkApp.toggle_show_trace#  s+   € Ø×ÒØ×ÑÔð ð �O‰OÔØrŽ   é   Fc                 óÄ
  — |j                  d| j                  j                  «       «      }|j                  d| j                  j                  «       «      }| j                  j	                  d«       | j                  j                  d|dz  dz
  ddd¬	«      }| j                  j                  |«      d   d
z   |dz
  }}| j                  j                  |||z
  dz  z   |dz
  ddd¬«      }d| j                  j                  |«      d   dz
  }	}| j                  d   }
| j                  j                  | j                  j                  dd|dz
  d|
|
¬«      «       | j                  j                  | j                  j                  d|	dz   dd|
|
¬«      «       | j                  j                  «       rÝt        | j                  «      dkD  rÅdx}}dx}}t        dt        t        | j                  «      | j                  dz   «      «      D ]G  }| j                  |    \  }}}}t        ||«      }t        ||«      }t!        ||«      }t!        ||«      }ŒI t!        |dz
  d«      }t!        |dz
  d«      }t        |dz   d«      }t        |dz   d«      }ndx}}dx}}t        d«      D ]�  }|||z
  |dz  |z
  ||z
  z  z  z   }|	|	|z
  |dz  |z
  ||z
  z  z  z
  }||cxk  r|k  r#n n | j                  j#                  ||||	d¬«       ||cxk  r|	k  sŒkn Œn| j                  j#                  ||||d¬«       Œ� | j                  j#                  ||||	«       | j                  j#                  ||	||	«       | j                  j                  |dz
  |	dddd|z  z  ¬	«       | j                  j                  |dz
  |dddd|z  z  ¬	«       | j                  j                  ||	dz   dddd|z  z  ¬	«       | j                  j                  ||	dz   dddd|z  z  ¬	«       d x}}t%        | j                  «      D �]6  \  }\  }}}}|||z
  ||z
  ||z
  z  z  z   }|	|	|z
  ||z
  ||z
  z  z  z
  }|| j&                  k(  rU| j                  j)                  |dz
  |dz
  |dz   |dz   d d!¬«       d"|dz  z  d#|dz  z  z   d$|dz  z  z   | j*                  d%<   nF| j                  j                  | j                  j)                  |dz
  |dz
  |dz   |dz   d&d'¬«      «       |�S| j,                  j                  «       r9| j                  j                  | j                  j#                  ||||d'¬«      «       ||}}�Œ9 y )(Nro   rp   Úallrw   rm   ÚleftÚwÚ	Precision)ÚjustifyÚanchorÚtextrþ   ÚsÚRecallÚcenter)r  r  r  rh   r[   r   iˆ  )ÚfillÚoutlineg{®Gáz„?é   g      $@z#888)r
  r~   ÚrightÚsez%d%%r”   ÚneÚnwz#0f0z#000zPrecision: %.2f%%	zRecall: %.2f%%	zF-score: %.2f%%r  ú#afaz#8c8)rÏ   rÉ   Úwinfo_widthÚwinfo_heightÚdeleteÚcreate_textÚbboxÚ_EVALBOX_PARAMSÚlowerÚcreate_rectangleÚ
_autoscaleÚlenr¥   ÚrangeÚminÚ_SCALE_NÚmaxÚcreate_lineÚ	enumerater¦   Úcreate_ovalÚstatusÚ_eval_lines)rŠ   rÁ   rò   ro   rp   Útagr  r  r«   ÚbotÚbgÚmax_precisionÚ
max_recallÚmin_precisionÚ
min_recallÚir‹   Ú	precisionÚrecallÚfmeasureÚxÚyÚprev_xÚprev_yÚ_Úfscores                             rŒ   rÊ   zRegexpChunkApp._eval_plot-  sù  € Ø—
‘
˜7 D§L¡L×$<Ñ$<Ó$>Ó?ˆØ—‘˜H d§l¡l×&?Ñ&?Ó&AÓBˆð 	�‰×Ñ˜EÔ"ð �l‰l×&Ñ&Ø�˜!‘˜bÑ ¨&¸À;ð 'ó 
ˆð —l‘l×'Ñ'¨Ó,¨QÑ/°!Ñ3°U¸R±ZˆeˆØ�l‰l×&Ñ&Ø�E˜D‘L QÑ&Ñ&Ø�R‰KØØØð 'ó 
ˆð �t—|‘|×(Ñ(¨Ó-¨aÑ0°2Ñ5ˆSˆð ×!Ñ! ,Ñ/ˆØ�‰×ÑØ�L‰L×)Ñ)¨!¨Q°°q±¸$ÀRÐQSÐ)ÓTô	
ð 	�‰×ÑØ�L‰L×)Ñ)¨!¨S°1©W°d¸DÀrÐSUÐ)ÓVô	
ð
 �?‰?×ÑÔ ¤S¨¯©Ó%7¸!Ò%;Ø)*Ð*ˆM˜JØ)*Ð*ˆM˜JÜ˜1œc¤# d§m¡mÓ"4°d·m±mÀaÑ6GÓHÓIò 5�Ø7;·}±}ÀaÀRÑ7HÑ4�˜ F¨HÜ # I¨}Ó =�Ü  ¨Ó4�
Ü # I¨}Ó =�Ü  ¨Ó4‘
ð5ô$   °Ñ 4°aÓ8ˆMÜ˜Z¨$Ñ.°Ó2ˆJÜ °Ñ 4°aÓ8ˆMÜ˜Z¨$Ñ.°Ó2‰Jà)*Ð*ˆM˜JØ)*Ð*ˆM˜Jô �r“ò 
	IˆAØ˜ ™Ø�T‘˜JÑ&¨:¸
Ñ+BÑCññ ˆAð �s˜S‘yØ�T‘˜MÑ)¨m¸mÑ.KÑLññ ˆAð �aÔ˜%ÕØ—‘×(Ñ(¨¨C°°C¸fÐ(ÔEØ�QŒ}˜Ž}Ø—‘×(Ñ(¨¨q°%¸ÀÐ(ÕHð
	Ið 	�‰× Ñ   s¨D°#Ô6Ø�‰× Ñ   s¨E°3Ô7ð 	�‰× Ñ Ø�1‰HØØØØ˜3 Ñ.Ñ/ð 	!ô 	
ð 	�‰× Ñ Ø�1‰HØØØØ˜3 Ñ.Ñ/ð 	!ô 	
ð 	�‰× Ñ ØØ�!‰GØØØ˜3 Ñ+Ñ,ð 	!ô 	
ð 	�‰× Ñ ØØ�!‰GØØØ˜3 Ñ+Ñ,ð 	!ô 	
ð Ðˆ�Ü1:¸4¿=¹=Ó1Ió 	"Ñ-ˆAÑ-��9˜f fØ˜ ™Ø˜*Ñ$¨°jÑ)@ÑAññ ˆAð �s˜S‘yØ˜]Ñ*¨}¸}Ñ/LÑMññ ˆAð �D×'Ñ'Ò'Ø—‘×(Ñ(Ø˜‘E˜1˜q™5 ! a¡%¨¨Q©°VÀVð )ô ð *¨Y¸©_Ñ=Ø(¨F°S©LÑ9ñ:à'¨6°C©<Ñ8ñ9ð —‘˜FÒ#ð —‘×"Ñ"Ø—L‘L×,Ñ,Ø˜A™˜q 1™u a¨!¡e¨Q°©U¸Èð -ó ôð
 Ð! d×&6Ñ&6×&:Ñ&:Ô&<Ø—‘×"Ñ"Ø—L‘L×,Ñ,¨V°V¸QÀÈÐ,ÓOôð  �FŠFñ5	"rŽ   c                 óú  — | j                   €y | j                  €d| _        y t        j                  «       }t        j                  «       | j                  z
  | j
                  k  r\| j                  | j                  k7  rCd| _        | j                   j                  t        | j                  dz  «      | j                  «      S | j                  | j                  k7  rÔ| j                  D ]�  \  }}}}| j                  | j                  |«      k(  sŒ'| j                  j                  ||||f«       t        | j                  «      dz
  | _        | j#                  «        d| _        d | _         y  d| _        t'        | j(                  ¬«      | _        | j,                  | _        | j                  | _        | j                  j1                  «       dk(  rd| _        y | j2                  | j$                  t5        | j$                  | j6                  z   | j8                  j;                  «       «       D ]=  }| j=                  |j?                  «       «      }| j*                  jA                  ||«       Œ? | xj$                  | j6                  z  c_        | j$                  | j8                  j;                  «       k\  r­| j                  j                  | j.                  | j*                  jC                  «       | j*                  jE                  «       | j*                  jG                  «       f«       t        | j                  «      dz
  | _        | j#                  «        d| _        d | _        y d| j$                  z  | j8                  j;                  «       z  }d	|z  | jH                  d
<   d| _        | jK                  t        j                  «       |z
  «       | j                   j                  t        | j                  dz  «      | j                  «       y )NFTiè  rh   r   r’   Ú r”   z$Evaluating on Development Set (%d%%)r  )&r«   rž   Ú_eval_demon_runningÚtimer¤   Ú_EVAL_DELAYrŸ   r¨   ÚafterrÑ   Ú
_EVAL_FREQÚ_eval_demonr¥   r�   Úappendr  r¦   rÊ   r©   r   r™   rª   r‹   r§   r‰   r¡   r  Ú_EVAL_CHUNKr°   rÏ   Ú_chunkparseÚleavesÚscorer-  r.  Ú	f_measurer#  Ú_adaptively_modify_eval_chunk)	rŠ   Út0ÚgÚpÚrÚfÚgoldÚguessÚprogresss	            rŒ   r=  zRegexpChunkApp._eval_demon¶  sF  € Ø�8‰8ÐØØ�<‰<ÐØ',ˆDÔ$Øô �Y‰Y‹[ˆô �I‰I‹K˜$×-Ñ-Ñ-°×0@Ñ0@Ò@Ø×'Ñ'¨4×+HÑ+HÒHà'+ˆDÔ$Ø—8‘8—>‘>¤# d§o¡o¸Ñ&<Ó"=¸t×?OÑ?OÓPÐPð ×"Ñ" d×&CÑ&CÒCð #Ÿm™mò ‘
��1�a˜Ø×*Ñ*¨d×.DÑ.DÀQÓ.GÓGØ—M‘M×(Ñ(¨!¨Q°°1¨Ô6Ü*-¨d¯m©mÓ*<¸qÑ*@�DÔ'Ø—O‘OÔ%Ø/4�DÔ,Ø48�DÔ1Ùðð  !ˆDÔÜ)°d×6GÑ6GÔHˆDÔØ!%§¡ˆDÔØ,0×,CÑ,CˆDÔ)ð ×"Ñ"×(Ñ(Ó*¨bÒ0à',ˆDÔ$Øð —K‘KØ×ÑœsØ× Ñ  4×#3Ñ#3Ñ3°T×5FÑ5F×5JÑ5JÓ5Ló ð
ò 	0ˆDð
 ×$Ñ$ T§[¡[£]Ó3ˆEØ×Ñ×"Ñ" 4¨Õ/ð	0ð 	×Ò˜D×,Ñ,Ñ,Õð ×Ñ˜t×0Ñ0×4Ñ4Ó6Ò6Ø�M‰M× Ñ à×&Ñ&Ø×$Ñ$×.Ñ.Ó0Ø×$Ñ$×+Ñ+Ó-Ø×$Ñ$×.Ñ.Ó0ð	ôô #& d§m¡mÓ"4°qÑ"8ˆDÔØ�O‰OÔØ',ˆDÔ$Ø,0ˆDÕ)à˜T×-Ñ-Ñ-°×0AÑ0A×0EÑ0EÓ0GÑGˆHØ"HÈ8Ñ"SˆD�K‰K˜ÑØ'+ˆDÔ$Ø×.Ñ.¬t¯y©y«{¸RÑ/?Ô@Ø�H‰H�N‰Nœ3˜tŸ™°Ñ5Ó6¸×8HÑ8HÕIrŽ   c           
      óÂ  — || j                   kD  rh| j                  dkD  rYt        | j                  dz
  t        t	        | j                  | j                   |z  z  «      | j                  dz
  «      «      | _        y|| j
                  k  rYt        | j                  dz   t        t	        | j                  | j
                  |z  z  «      | j                  dz   «      «      | _        yy)zÕ
        Modify _EVAL_CHUNK to try to keep the amount of time that the
        eval demon takes between _EVAL_DEMON_MIN and _EVAL_DEMON_MAX.

        :param t: The amount of time that the eval demon took.
        rþ   rh   rw   N)Ú_EVAL_DEMON_MAXr?  r  r  rÑ   Ú_EVAL_DEMON_MIN)rŠ   Úts     rŒ   rD  z,RegexpChunkApp._adaptively_modify_eval_chunk  sÒ   € ð ˆt×#Ñ#Ò#¨×(8Ñ(8¸1Ò(<Ü"Ø× Ñ  1Ñ$ÜÜ˜×(Ñ(¨D×,@Ñ,@À1Ñ,DÑEÓFØ×$Ñ$ rÑ)óó ˆDÕð �×%Ñ%Ò%Ü"Ø× Ñ  1Ñ$ÜÜ˜×(Ñ(¨D×,@Ñ,@À1Ñ,DÑEÓFØ×$Ñ$ rÑ)óó ˆDÕð &rŽ   c                 óÐ  ‡ — t        |fi ‰ j                  ¤Ž}|j                  dd¬«       |j                  dd¬«       |j                  dd¬«       |j                  dd¬«       t	        |fd‰ j
                  i‰ j                  ¤Ž‰ _        t        |‰ j
                  d	d
‰ j                  d   ¬«      ‰ _	        ‰ j                  j                  ddd¬«       ‰ j                  j                  ddd¬«       t        |‰ j                  j                  ¬«      }|j                  ddd¬«       ‰ j                  j                  |j                  ¬«       ‰ j                  d   }t        ||¬«      }|j                  ddd¬«       t        |fd‰ j                   dœ‰ j"                  ¤Žj%                  d¬«       t        |fd‰ j&                  dœ‰ j"                  ¤Žj%                  d¬«       t	        |fd‰ j(                  i‰ j*                  ¤Ž‰ _        ‰ j,                  j                  ddd¬«       i ‰ _        ‰ j                  d   }t        ||¬«      }|j                  ddd¬«       t1        ‰ j2                  «      D ]Ž  \  }\  }}	}
t        ||‰ j(                  ¬«      }|j                  |dz  dd¬«       |j5                  d|fˆ fd„	«       |‰ j.                  |<   t        |d‰ j6                  |¬«      j                  |dz  dz   d¬«       Œ� ‰ j.                  ‰ j2                  d   d      j9                  ‰ j
                  ¬ «       ‰ j,                  j;                  d!d"¬#«       ‰ j<                  D ]%  \  }} ‰ j,                  j:                  d$|z  fi |¤Ž Œ' ‰ j?                  ‰ j2                  d   d   «       t        |‰ j,                  j                  ¬«      }‰ j,                  j                  |j                  ¬«       |j                  ddd¬«       t        |‰ j                  d   ¬«      }t	        |fd‰ j
                  i‰ j@                  ¤Ž‰ _!        ‰ jB                  j%                  d"d%¬&«       t        |‰ j
                  d'd(‰ j@                  d   ¬)«      ‰ _"        ‰ jD                  j                  ddd¬«       |j                  ddd¬«       t        |‰ jF                  ¬«      ‰ _$        ‰ jH                  j                  ddd¬«       t        |‰ jB                  jJ                  d*¬+«      ‰ _&        ‰ jL                  j                  ‰ jB                  d,<   ‰ jL                  j%                  d-d.¬/«       ‰ j                  d   }t        ||¬«      }|j                  dd0d¬«       t        |fd1‰ jN                  dœ‰ j"                  ¤Žj%                  d¬«       t        |fd2‰ jP                  dœ‰ j"                  ¤Žj%                  d¬«       t        |fd3‰ jR                  d4d5œ‰ j"                  ¤Ž‰ _*        ‰ jT                  j%                  d(¬«       t        |fd6‰ jV                  dœ‰ j"                  ¤Ž‰ _,        ‰ jX                  j%                  d(¬«       t[        |fi ‰ j\                  ¤Ž‰ _/        t        |‰ j
                  d7d(‰ j\                  d   ¬)«      }|j                  ddd¬«       ‰ j^                  j                  dddd¬8«       ‰ j                  d   }t        ||¬«      }|j                  dd0d¬«       ta        ‰ jb                  «      ‰ _2        ‰ jd                  j                  d9«       tg        |f‰ jd                  ‰ jh                  d:d;œ‰ j"                  ¤Žj%                  d¬«       ta        ‰ jb                  «      ‰ _5        ‰ jj                  j                  d9«       tg        |f‰ jj                  ‰ jh                  d<d;œ‰ j"                  ¤Žj%                  d¬«       t        |fd=d>i‰ j"                  ¤Žj%                  d(¬«       t        |fd‰ j
                  i‰ jl                  ¤Ž‰ _7        ‰ jn                  j                  dd?d@ddd¬A«       d4‰ j,                  dB<   d4‰ jB                  dB<   ‰ j                  d   }t        |dCd|¬«      j                  dd¬«       t        |ddC|¬«      j                  dd¬«       t        |dDd|¬«      j                  ddE¬«       |j%                  d%d"¬F«       ‰ jB                  j;                  dGdHdI¬J«       ‰ jB                  j;                  dKdIdL¬M«       ‰ jB                  j;                  dNdO¬«       ‰ jB                  j;                  dPdQdR¬S«       ‰ jB                  j;                  dTdUdR¬V«       ‰ jB                  j;                  dWdL¬X«       ‰ j                  j;                  dWdY¬«       ‰ j                  j;                  dZd[¬X«       ‰ j                  j;                  d\d]¬X«       ‰ j                  j;                  d^d_¬X«       ‰ j                  j;                  d`dda¬b«       y )cNr   é   )Úweightr~   rm   rh   rþ   ÚfontúGrammar:Úblackr[   )rT  r  Úhighlightcolorr[   ÚSW)ÚcolumnÚrowÚstickyÚNEWS)rÖ   ÚNWS)ÚyscrollcommandrZ   ÚEWzPrev Grammar)r  rÖ   r  )ÚsidezNext Grammar)r  rT  ÚSz<ButtonPress>c                 ó&   •— ‰j                  |«      S r¾   )Ú	show_help)rÁ   ÚtabrŠ   s     €rŒ   rÂ   z.RegexpChunkApp._init_widgets.<locals>.<lambda>N  s   ø€ ¸4¿>¹>È#Ó;N€ rŽ   )rp   ro   r[   )rY  rZ  )rT  ÚelideT)re  útag-%sÚboth)Úexpandr
  zDevelopment Set:r  )rT  r  r  r[   Úhoriz)rÖ   ÚorientÚxscrollcommandÚbottomr0  )r`  r
  é   zPrev Example (Ctrl-p)zNext Example (Ctrl-n)zShow exampleÚdisabled)r  rÖ   Ústatez
Show tracezEvaluation:)rY  rZ  r[  Ú
columnspanFÚZoom)rÝ   rÖ   r  ÚLinesr  ÚHistoryé	   ÚNEW)rY  rZ  r[  r   r€   rp  ro  rw   r‚   é   )r
  rh  útrue-posr  ÚTrue)r[   r\   ú	false-negz#800)r\   rW   ú	false-posz#faaÚtracez#666Únone)rW   ru   Ú
wrapindentrx   )rb   ru   ÚerrorrV   z#fecÚcommentz#840Úanglez#00fÚbracez#0a0rc   rj   r`   )8r   Ú_FRAME_PARAMSÚgrid_columnconfigureÚgrid_rowconfigurer   rÐ   Ú_GRAMMARBOX_PARAMSr¶   r   ÚgrammarlabelÚgridr
   Úyviewrò   r±   r   Ú_history_prevÚ_BUTTON_PARAMSÚpackÚ_history_nextrÒ   Ú_HELPBOX_PARAMSÚhelpboxÚhelptabsr!  ÚHELPr®   Ú_HELPTAB_SPACERÚ	configureÚ
tag_configÚHELP_AUTOTAGrc  Ú_DEVSETBOX_PARAMSÚ	devsetboxÚdevsetlabelÚ_devset_scrollÚdevset_scrollÚxviewÚdevset_xscrollrÇ   rÆ   r¹   Údevset_buttonrü   Útrace_buttonr   r  rÉ   r   r«   r  r   rÊ   r$  Ú_STATUS_PARAMSr#  )rŠ   r«   Úframe0Úgrammar_scrollbarr'  Úframe3Úhelptab_framer,  rd  Útabstopsr  rÕ   r%  ÚparamsÚhelp_scrollbarÚframe4Úframe1Úframe2s   `                 rŒ   r³   zRegexpChunkApp._init_widgets  s˜	  ø€ Ü�sÑ1˜d×0Ñ0Ñ1ˆØ×#Ñ# A¨aÐ#Ô0Ø×#Ñ# A¨aÐ#Ô0Ø× Ñ  ¨1Ð Ô-Ø× Ñ  ¨1Ð Ô-ô ˜vÑR¨D¯J©JÐR¸$×:QÑ:QÑRˆŒÜ!ØØ—‘ØØ"Ø×.Ñ.¨|Ñ<ô
ˆÔð 	×Ñ×Ñ a¨Q°tÐÔ<Ø�‰×Ñ A¨1°VÐÔ<ô & f°d·o±o×6KÑ6KÔLÐØ×Ñ a¨Q°uÐÔ=Ø�‰×ÑÐ.?×.CÑ.CÐÔDð ×Ñ Ñ-ˆÜ�v¨"Ô-ˆØ�‰˜1 !¨DˆÔ1ÜØð	
àØ×&Ñ&ñ	
ð ×!Ñ!ñ		
÷
 ‰$�Fˆ$Ô
ÜØð	
àØ×&Ñ&ñ	
ð ×!Ñ!ñ		
÷
 ‰$�Fˆ$Ô
ô ˜FÑQ¨¯©ÐQ¸D×<PÑ<PÑQˆŒØ�‰×Ñ ¨°&ÐÔ9ØˆŒØ×Ñ Ñ-ˆÜ˜f°Ô4ˆØ×Ñ !¨°4ÐÔ8Ü(1°$·)±)Ó(<ò 		,Ñ$ˆAÑ$��X˜tÜ˜-¨c¸¿¹ÔHˆEØ�J‰J˜a !™e¨°3ˆJÔ7ð �J‰J�°cÔ(NÔOØ!&ˆD�M‰M˜#ÑÜØ a¨t×/CÑ/CÐPRôç‰d˜!˜a™% !™)¨ˆdÕ+ð		,ð 	�‰�d—i‘i ‘l 1‘oÑ&×0Ñ0°d·j±jÐ0ÔAØ�‰×Ñ ¨tÐÔ4Ø×,Ñ,ò 	>‰KˆC�Ø#ˆD�L‰L×#Ñ# H¨s¡NÑ=°fÓ=ð	>à�‰�t—y‘y ‘| A‘Ô'ô # 6°4·<±<×3EÑ3EÔFˆØ�‰×Ñ¨>×+=Ñ+=ÐÔ>Ø×Ñ 1¨!°EÐÔ:ô �v¨$×*<Ñ*<¸\Ñ*JÔKˆÜ˜fÑP¨4¯:©:ÐP¸×9OÑ9OÑPˆŒØ�‰×Ñ 4¨fÐÔ5Ü ØØ—‘Ø#ØØ×-Ñ-¨lÑ;ô
ˆÔð 	×Ñ×Ñ Q¨A°dÐÔ;Ø�‰˜1 !¨FˆÔ3ô ' v°t×7JÑ7JÔKˆÔØ×Ñ×Ñ q¨a¸ÐÔ>Ü'Ø˜DŸN™N×0Ñ0¸ô
ˆÔð ,0×+>Ñ+>×+BÑ+Bˆ�‰Ð'Ñ(Ø×Ñ× Ñ  h°SÐ Ô9ð ×Ñ Ñ-ˆÜ�v¨"Ô-ˆØ�‰˜1 !¨DˆÔ1ÜØð	
à(Ø×%Ñ%ñ	
ð ×!Ñ!ñ		
÷
 ‰$�Fˆ$Ô
ÜØð	
à(Ø×%Ñ%ñ	
ð ×!Ñ!ñ		
÷
 ‰$�Fˆ$Ô
Ü#Øð
àØ×$Ñ$Øñ	
ð
 ×!Ñ!ñ
ˆÔð 	×Ñ×Ñ WÐÔ-Ü"Øð
Ø%¨t¯©ñ
ØBF×BUÑBUñ
ˆÔð 	×Ñ×Ñ GÐÔ,ô ˜fÑ=¨×(<Ñ(<Ñ=ˆŒÜØØ—‘ØØØ×+Ñ+¨LÑ9ô
ˆð 	�
‰
˜! ¨4ˆ
Ô0Ø�‰×Ñ ¨°&ÀQÐÔGð ×Ñ Ñ-ˆÜ�v¨"Ô-ˆØ�‰˜1 !¨DˆÔ1Ü  §¡Ó*ˆŒØ�‰×Ñ˜EÔ"ÜØð	
à—_‘_Ø—O‘OØñ		
ð
 ×!Ñ!ñ	
÷ ‰$�Fˆ$Ô
Ü! $§(¡(Ó+ˆÔØ×Ñ×Ñ˜UÔ#ÜØð	
à×%Ñ%Ø—O‘OØñ		
ð
 ×!Ñ!ñ	
÷ ‰$�Fˆ$Ô
ÜˆvÑ=˜IÐ=¨×)<Ñ)<Ñ=×BÑBÈÐBÔPô ˜FÑK¨¯©ÐK°t×7JÑ7JÑKˆŒØ�‰×Ñ  q°¸QÀQÐSTÐÔUð !+ˆ�‰�WÑØ",ˆ�‰�wÑð ×Ñ Ñ-ˆÜˆf˜R q°RÔ8×=Ñ=ÀQÈAÐ=ÔNÜˆf˜Q b°RÔ8×=Ñ=ÀQÈAÐ=ÔNÜˆf˜Q a°BÔ7×<Ñ<ÀAÈ1Ð<ÔMð 	�‰˜¨ˆÔ-ð 	�‰×!Ñ! *¸È6Ð!ÔRØ�‰×!Ñ! +¸ÈFÐ!ÔSØ�‰×!Ñ! +¸&Ð!ÔAØ�‰×!Ñ! '°fÀ6Ð!ÔJØ�‰×!Ñ! ,¸À&Ð!ÔIØ�‰×!Ñ! '°fÐ!Ô=ð 	�‰×"Ñ" 7°vÐ"Ô>Ø�‰×"Ñ" 9¸Ð"Ô@Ø�‰×"Ñ" 7°vÐ"Ô>Ø�‰×"Ñ" 7°vÐ"Ô>Ø�‰×"Ñ" <¸!ÀbÐ"ÕIrŽ   c           	      óœ  — d| _         d| j                  d<   d| j                  d<   d| j                  d<   | j                  j	                  dd«       d| j
                  dz   | j                  j                  «       fz  | j                  d	<   | j                  €:| j                  j                  dd
«       | j                  j                  ddd«       y | j                  | j
                     }| j                  j                  «       }d}dg}t        |j                  «       «      D ]*  \  }\  }}|d|z  z  }|j!                  t#        |«      «       Œ, t%        t#        |«      dz   «      D �	�
ci c]#  }	t%        t#        |«      «      D ]
  }
|	|
f||
   “Œ Œ% c}
}	| _        t%        t#        |«      dz   «      D �	ci c]  }	|	|	dz  dz   “Œ c}	| _        t%        t#        |«      dz   «      D �]r  }	|	dk(  r:| j                  j                  dd«       | j                  j                  ddd«       nB| j                  j                  dd||	dz
     z  «       | j                  j                  ddd«       | j                  j                  d|dz   «       | j                  j                  ddd«       t+        |d |	 «      }| j-                  |j                  «       «      }| j/                  |«      }| j/                  |«      }|j1                  |«      D ]  }| j3                  |	|d«       Œ ||z
  D ]  }| j3                  |	|d«       Œ ||z
  D ]  }| j3                  |	|d«       Œ �Œu | j                  j                  dd«       | j                  j                  ddd«       | j4                  j7                  d| j8                  j:                  dd«       y c c}
}	w c c}	w )NTrn  ro  Únormalr˜   r•   úDevelopment Set (%d/%d)rh   r  z#Trace: waiting for a valid grammar.r~  ú	z%s rm   r   zStart:
r{  zend -2c linestartzend -2cz
Apply %s:
r–   r}  rw  ry  rz  z
Finished.
r”   g333333Ó?)rû   r�  rœ  r–  r  r£   r°   rÏ   r—  rž   r—   Útag_addr¡   Úrulesr!  rA  r>  r  r  ÚcharnumÚlinenumr   r@  Ú_chunksÚintersectionÚ_color_chunkr«   r;  r›  r±   )rŠ   rÁ   Ú	gold_treer®  Útagseqr¯  Úwordnumrn   Úposr,  Újrž   Ú	test_treeÚgold_chunksÚtest_chunksÚchunks                   rŒ   rü   zRegexpChunkApp.show_traceØ  s…  € Ø"ˆÔØ%/ˆ×Ñ˜'Ñ"Ø&.ˆ×Ñ˜7Ñ#à"*ˆ�‰�wÑà�‰×Ñ˜e UÔ+Ø#<Ø×Ñ Ñ" D×$5Ñ$5×$9Ñ$9Ó$;Ð<ñ$
ˆ×Ñ˜Ñ ð �<‰<ÐØ�N‰N×!Ñ! %Ð)NÔOØ�N‰N×"Ñ" 7¨E°5Ô9Øà—K‘K × 1Ñ 1Ñ2ˆ	Ø—‘×"Ñ"Ó$ˆð ˆØ�#ˆÜ$-¨i×.>Ñ.>Ó.@Ó$Aò 	(Ñ ˆG‘[�d˜CØ�e˜c‘kÑ!ˆFØ�N‰Nœ3˜v›;Õ'ð	(ô
 œ3˜u›:¨™>Ó*÷
àÜœ3˜w›<Ó(ò
ð ð �ˆF�G˜A‘JÑð
Øó
ˆŒô
 /4´C¸³JÀ±NÓ.CÖD¨˜˜1˜q™5 1™9™ÒDˆŒä”s˜5“z A‘~Ó&ó 	9ˆAØ�AŠvØ—‘×%Ñ% e¨ZÔ8Ø—‘×&Ñ& wÐ0CÀYÕOà—‘×%Ñ% e¨]¸UÀ1ÀqÁ5¹\Ñ-IÔJØ—‘×&Ñ& wÐ0CÀYÔOà�N‰N×!Ñ! %¨°$©Ô7Ø�N‰N×"Ñ" <Ð1DÀiÔPä'¨¨b¨q¨	Ó2ˆGØ×(Ñ(¨×)9Ñ)9Ó);Ó<ˆIØŸ,™, yÓ1ˆKØŸ,™, yÓ1ˆKà$×1Ñ1°+Ó>ò 8�Ø×!Ñ! ! U¨JÕ7ð8à$ {Ñ2ò 9�Ø×!Ñ! ! U¨KÕ8ð9à$ {Ñ2ò 9�Ø×!Ñ! ! U¨KÕ8ò9ð)	9ð, 	�‰×Ñ˜e ]Ô3Ø�‰×Ñ˜wÐ(;¸YÔGð
 	�‰�‰�s˜D×/Ñ/×3Ñ3°Q¸Õ<ùóG
ùò
 Es   Å((OÆ2O	c                 óz  — d| j                   d<   | j                   j                  dd«       | j                  D �]ñ  \  }}}||k(  �r»|j                  ddj	                  d„ t        t        | j                  j                  «       «      d„ ¬	«      D «       «      «      } | j                  |   j                  di | j                  ¤Ž | j                   j                  |¬
«       | j                   j                  d|dz   «       d}| j                  D ]ï  \  }}d|› d|› d�}t        j                  ||«      D ]È  }	| j                   j!                  d||	j#                  d«      z  ||	j%                  d«      z  «       | j                   j!                  d|z  ||	j#                  d«      z  ||	j%                  d«      z  «       | j                   j!                  d||	j#                  d«      z  ||	j%                  d«      z  «       ŒÊ Œñ �ŒÉ | j                  |   j                  di | j&                  ¤Ž �Œô d| j                   d<   y )Nrª  ro  r˜   r•   z
<<TAGSET>>r–   c              3   ó&   K  — | ]	  }d |z  –— Œ y­w)z	%s	%sN© )Ú.0Úitems     rŒ   ú	<genexpr>z+RegexpChunkApp.show_help.<locals>.<genexpr>  s   è ø€ ò à ð # TÕ)ñùó   ‚c                 óX   — t        j                  d| d   «      xr d| d   fxs d| d   fS )Nz\w+r   rh   )r‡   rg   )Út_ws    rŒ   rÂ   z*RegexpChunkApp.show_help.<locals>.<lambda>"  s8   € ¬B¯H©H°V¸SÀ¹VÓ,Dò -,Ø!" C¨¡F ò-+à ! 3 q¡6˜{ð rŽ   )Úkey)ry   z



















z1.0 + %d charsz(?s)(<z
>)(.*?)(</z>)re  rh   rf  rm   r~   rn  r¿  )rŽ  r  r�  ÚreplaceÚjoinÚsortedÚlistr›   Úitemsr�  rò   Ú_HELPTAB_FG_PARAMSr—   r”  r‡   Úfinditerr­  Ústartr•   Ú_HELPTAB_BG_PARAMS)
rŠ   rd  Únamer£  r  ÚCr%  r¤  ÚpatternÚms
             rŒ   rc  zRegexpChunkApp.show_help  sû  € Ø (ˆ�‰�WÑØ�‰×Ñ˜E 5Ô)Ø$(§I¡Ió 	FÑ ˆD�(˜DØ�s‹{Ø—|‘|Ø Ø—I‘Iñ ä$*Ü  §¡×!2Ñ!2Ó!4Ó5ñ!+ô%ôó ó�ð +�—‘˜dÑ#×*Ñ*ÑE¨T×-DÑ-DÒEØ—‘×#Ñ#¨Ð#Ô2Ø—‘×#Ñ# E¨4°)Ñ+;Ô<Ø$�Ø#'×#4Ñ#4ò T‘K�C˜Ø & s e¨:°c°U¸"Ð=�GÜŸ[™[¨°$Ó7ò T˜ØŸ™×,Ñ,¨W°a¸!¿'¹'À!»*±nÀaÈ!Ï%É%ÐPQË(ÁlÔSØŸ™×,Ñ,Ø$ s™N¨A°·±¸³
©N¸AÀÇÁÀaÃ¹Lôð Ÿ™×,Ñ,¨W°a¸!¿'¹'À!»*±nÀaÈ!Ï%É%ÐPQË(ÁlÕSñTòTð +�—‘˜dÑ#×*Ñ*ÑE¨T×-DÑ-DÔEð9	Fð: !+ˆ�‰�WÒrŽ   c                 ó@   — | j                  | j                  dz
  «       y©Nrh   rú   ©Ú_view_historyr¦   rý   s     rŒ   r‰  zRegexpChunkApp._history_prev9  ó   € Ø×Ñ˜4×.Ñ.°Ñ2Ô3ØrŽ   c                 ó@   — | j                  | j                  dz   «       yrÕ  rÖ  rý   s     rŒ   rŒ  zRegexpChunkApp._history_next=  rØ  rŽ   c                 ó6  — t        dt        t        | j                  «      dz
  |«      «      }| j                  sy || j                  k(  ry d| j
                  d<   | j
                  j                  dd«       | j
                  j                  d| j                  |   d   «       | j
                  j                  dd«       || _        | j                  | j                  |   d   «       | j                  | j                  |   d   «      | _        | j                  r<| j                  j                  d«      D �cg c]  }t        j                  |«      ‘Œ }}ng }t        |«      | _        | j#                  «        | j%                  «        | j&                  r| j)                  «        | j                  t        | j                  «      dz
  k  r@d	j+                  | j                  dz   t        | j                  «      «      | j,                  d
<   y d| j,                  d
<   y c c}w )Nr   rh   rª  ro  r˜   r•   r—   r–   zGrammar {}/{}:r  rU  )r  r  r  r¥   r¦   r¶   r  r—   r¸   Ú_syntax_highlight_grammarr�   rŸ   Úsplitr   Ú
fromstringr   rž   rÊ   Ú_highlight_devsetrû   rü   Úformatr†  )rŠ   ÚindexÚliner®  s       rŒ   r×  zRegexpChunkApp._view_historyA  sÅ  € ä�A”sœ3˜tŸ}™}Ó-°Ñ1°5Ó9Ó:ˆØ�}Š}Øà�D×'Ñ'Ò'Øð $,ˆ�‰˜Ñ Ø�‰×Ñ˜u eÔ,Ø�‰×Ñ˜u d§m¡m°EÑ&:¸1Ñ&=Ô>Ø�‰× Ñ  ¨5Ô1Ø#ˆÔØ×&Ñ& t§}¡}°UÑ';¸AÑ'>Ô?à"&×"8Ñ"8¸¿¹ÀuÑ9MÈaÑ9PÓ"QˆÔØ×"Ò"ð !×3Ñ3×9Ñ9¸$Ó?öàô  ×*Ñ*¨4Õ0ðˆEñ ð
 ˆEÜ(¨Ó/ˆŒà�‰Ôà×ÑÔ Ø×ÒØ�O‰OÔà×Ñ¤ T§]¡]Ó!3°aÑ!7Ò7Ø(8×(?Ñ(?Ø×#Ñ# aÑ'Ü�D—M‘MÓ"ó)ˆD×Ñ˜fÒ%ð
 )3ˆD×Ñ˜fÒ%ùò)s   Ä4Hc                 ó*   — | j                  ddd«       y)NÚscrollrh   Úpagerú   ©r˜  rý   s     rŒ   rÆ   zRegexpChunkApp._devset_nextj  s   € Ø×Ñ˜H a¨Ô0ØrŽ   c                 ó*   — | j                  ddd«       y)Nrã  r‘   rä  rú   rå  rý   s     rŒ   rÇ   zRegexpChunkApp._devset_prevn  s   € Ø×Ñ˜H b¨&Ô1ØrŽ   c                 ó`   — | j                   €y | j                   j                  «        d | _         y r¾   )r«   r¯   rý   s     rŒ   r¯   zRegexpChunkApp.destroyr  s&   € Ø�8‰8ÐØØ�‰×ÑÔØˆ�rŽ   c                 ó  — d}| j                   }|dk(  r?|d   j                  d«      r+| j                  | j                  t	        |d   «      z   «       n›|dk(  rB|d   j                  d«      r.| j                  | j                  |t	        |d   «      z  z   «       nT|dk(  rB| j                  t	        t        |d   «      | j                  j                  «       z  «      «       nJ d|› d|› �«       ‚|r| j                  «        y y )	Nrh   rã  Úunitr   rä  Úmovetozbad scroll command r†   )	rû   Ú
startswithr¹   r£   rÑ   Úfloatr°   rÏ   rü   )rŠ   rÖ   ÚargsÚNÚshowing_traces        rŒ   r˜  zRegexpChunkApp._devset_scrollx  sì   € ØˆØ×+Ñ+ˆØ�hÒ 4¨¡7×#5Ñ#5°fÔ#=Ø×Ñ˜T×.Ñ.´°T¸!±W³Ñ=Õ>Ø˜Ò  T¨!¡W×%7Ñ%7¸Ô%?Ø×Ñ˜T×.Ñ.°´S¸¸a¹³\Ñ1AÑAÕBØ˜Ò Ø×ÑœS¤ t¨A¡w£°$×2CÑ2C×2GÑ2GÓ2IÑ!IÓJÕKà<Ð+¨G¨9°A°d°VÐ<Ó<�1ÙØ�O‰OÕð rŽ   c                 óÎ  — |€| j                   }t        t        d|«      | j                  j	                  «       dz
  «      }|| j                   k(  r| j
                  sy || _         d| _        d| j                  d<   d| j                  d<   d| j                  d<   d| j                  d<   | j                  j                  d	d
«       d| j                   dz   | j                  j	                  «       fz  | j                  d<   | j                  | j                   | j                   dz    }i | _        ddi| _        t        |«      D ]�  \  }}d}t        |j                  «       «      D ]J  \  }\  }}t!        |«      | j                  ||f<   ||› d|› d�z  }t!        |«      | j                  ||dz   f<   ŒL | j                  j#                  d
|d d dz   «       Œ‘ | j$                  �| j'                  «        d| j                  d<   | j                   | j                  j	                  «       z  }	| j                   dz   | j                  j	                  «       z  }
| j(                  j+                  |	|
«       y )Nr   rh   Frª  ro  rn  rn   ru   r˜   r•   r«  r  r7  ú/r†   r‘   z

rm   )r£   r  r  r°   rÏ   rû   r�  rœ  r–  r  r—  r¡   r¯  r°  r!  rA  r  r—   rž   rÞ  r™  r±   )rŠ   rà  ÚsampleÚsentnumÚsentÚlinestrr¶  rn   r·  ÚfirstÚlasts              rŒ   r¹   zRegexpChunkApp.show_devset†  sP  € Øˆ=Ø×%Ñ%ˆEô ”C˜˜5“M 4×#4Ñ#4×#8Ñ#8Ó#:¸QÑ#>Ó?ˆà�D×%Ñ%Ò%¨d×.AÒ.AØØ!ˆÔà#ˆÔØ%-ˆ×Ñ˜'Ñ"Ø&0ˆ×Ñ˜7Ñ#ð #+ˆ�‰�wÑØ!'ˆ�‰�vÑØ�‰×Ñ˜e UÔ+Ø#<Ø×Ñ Ñ" D×$5Ñ$5×$9Ñ$9Ó$;Ð<ñ$
ˆ×Ñ˜Ñ ð
 —‘˜T×.Ñ.°×1BÑ1BÀQÑ1FÐGˆØˆŒØ˜1�vˆŒÜ& vÓ.ò 	@‰MˆG�TØˆGÜ(1°$·+±+³-Ó(@ò BÑ$�™˜$ Ü14°W³�—‘˜W gÐ-Ñ.Ø˜d˜V 1 S E¨Ð+Ñ+�Ü58¸³\�—‘˜W g°¡kÐ1Ò2ðBð �N‰N×!Ñ! %¨°°"¨¸Ñ)>Õ?ð	@ð �<‰<Ð#Ø×"Ñ"Ô$Ø",ˆ�‰�wÑð ×!Ñ! D×$5Ñ$5×$9Ñ$9Ó$;Ñ;ˆØ×!Ñ! AÑ%¨×):Ñ):×)>Ñ)>Ó)@Ñ@ˆØ×Ñ×Ñ˜u dÕ+rŽ   c                 óì   — t        «       }d}|D ]b  }t        |t        «      rK|j                  «       | j                  k(  r|j                  ||t        |«      z   f«       |t        |«      z  }Œ^|dz  }Œd |S )Nr   rh   )r±   Ú
isinstancer   rÕ   r™   Úaddr  )rŠ   ÚtreeÚchunksr¶  Úchilds        rŒ   r±  zRegexpChunkApp._chunks³  ss   € Ü“ˆØˆØò 	ˆEÜ˜%¤Ô&Ø—;‘;“= D×$5Ñ$5Ò5Ø—J‘J ¨´3°u³:Ñ)=Ð>Ô?Øœ3˜u›:Ñ%‘à˜1‘‘ð	ð ˆrŽ   c                 óà  — | j                   €y | j                  j                  ddd«       | j                  j                  ddd«       | j                  j                  ddd«       | j                  j                  ddd«       t	        |j                  d«      «      D �]O  \  }}|j                  «       sŒt        j                  d|«      }d }|j                  d	«      r`|j                  d	«      }d
|dz   |j                  d	«      fz  }d
|dz   |j                  d	«      fz  }| j                  j                  d||«       t        j                  d|«      D ]–  }|�|j                  «       |k\  r ŒÑd
|dz   |j                  «       fz  }d
|dz   |j                  «       fz  }|j                  «       dv r| j                  j                  d||«       Œz| j                  j                  d||«       Œ˜ �ŒR y )Nr  r˜   r•   r€  r�  rc   r–   z(\\.|[^#])*(#.*)?rm   z%d.%drh   z[<>{}]z<>)r«   r¶   Ú
tag_remover­  r!  rÜ  r‰   r‡   rg   ÚgrouprÎ  r•   rÍ  )rŠ   r‹   Úlinenorá  rÓ  Úcomment_startr  rÁ   s           rŒ   rÛ  z(RegexpChunkApp._syntax_highlight_grammar¿  sª  € Ø�8‰8ÐØØ�‰×"Ñ" 9¨e°UÔ;Ø�‰×"Ñ" 7¨E°5Ô9Ø�‰×"Ñ" 7¨E°5Ô9Ø�‰×Ñ ¨e°UÔ;Ü% g§m¡m°DÓ&9Ó:ó 	;‰LˆF�DØ—:‘:”<ØÜ—‘Ð-¨tÓ4ˆAØ ˆMØ�w‰w�qŒzØ !§¡¨£
�Ø˜v¨™z¨1¯7©7°1«:Ð6Ñ6�Ø˜v¨™z¨1¯5©5°«8Ð4Ñ4�Ø—‘×'Ñ'¨	°1°aÔ8Ü—[‘[ ¨4Ó0ò ;�Ø Ð,°·±³¸mÒ1KÙØ˜v¨™z¨1¯7©7«9Ð5Ñ5�Ø˜v¨™z¨1¯5©5«7Ð3Ñ3�Ø—7‘7“9 Ñ$Ø—O‘O×+Ñ+¨G°Q¸Õ:à—O‘O×+Ñ+¨G°Q¸Õ:ò;ñ	;rŽ   c           	      óÆ  — | j                   €y | j                  j                  ddd«       g | _        t	        |j                  d«      «      D ]E  \  }}t        j                  dd|«      }|j                  «       }|sŒ0	 t        j                  |«       ŒG d
| j                  d<   y # t        $ r3}| j                  j                  dd|dz   z  d	|dz   z  «       Y d }~Œ�d }~ww xY w)Nr~  r˜   r•   r–   r„   r…   z%s.0rh   z%s.0 lineendr7  r  )r«   r¶   rÿ  Ú_grammarcheck_errsr!  rÜ  r‡   rˆ   r‰   r   rÝ  r�   r­  r#  )rŠ   r‹   r  rá  rÁ   s        rŒ   Ú_grammarcheckzRegexpChunkApp._grammarcheckÚ  sÕ   € Ø�8‰8ÐØØ�‰×"Ñ" 7¨E°5Ô9Ø"$ˆÔÜ% g§m¡m°DÓ&9Ó:ò 		‰LˆF�DÜ—6‘6Ð0°%¸Ó>ˆDØ—:‘:“<ˆDÚðÜ#×.Ñ.¨tÕ4ð		ð !ˆ�‰�FÒøô	 "ò Ø—O‘O×+Ñ+Ø ¨6°A©:Ñ!6¸È&ÐSTÉ*Ñ8U÷ñ ûðús   Á=B$Â$	C Â-)CÃC c                 óN  — |rt        j                   «       | _        | j                  j                  dd«      x| _        }| j                  |«      }|| j                  k(  ry || _        | j                  t        | j                  «      dz
  k  rd| j                  d<   | j                  |«       	 |r2|j                  d«      D �cg c]  }t        j                  |«      ‘Œ }}ng }t%        |«      | _        | j                  j'                  ddd«       t        j                   «       | _        | j*                  r| j-                  «        n| j/                  «        | j0                  s| j3                  «        y y c c}w # t        $ r"}| j!                  |«       d | _        Y d }~y d }~ww xY w)Nr˜   r•   rh   rU  r  r–   r~  )r9  r¤   r¶   rÏ   r‹   r�   rŸ   r¦   r  r¥   r†  rÛ  rÜ  r   rÝ  r�   r  rž   r   rÿ  r    rû   rü   rÞ  r8  r=  )rŠ   Úeventr‹   rŸ   rá  r®  rÁ   s          rŒ   rº   zRegexpChunkApp.updateë  sx  € áÜ"&§)¡)£+ˆDÔð "&§¡×!4Ñ!4°U¸EÓ!BÐBˆŒ�wð "×3Ñ3°GÓ<ÐØ ×!8Ñ!8Ò8Øà&8ˆDÔ#ð ×Ñ¤ T§]¡]Ó!3°aÑ!7Ò7Ø(2ˆD×Ñ˜fÑ%à×&Ñ& wÔ/ð	á!ð !3× 8Ñ 8¸Ó >öàô $×.Ñ.¨tÕ4ð�ñ ð
 �ô )¨Ó/ˆŒØ�‰×"Ñ" 7¨E°5Ô9Ü#Ÿy™y›{ˆÔà×ÒØ�O‰OÕà×"Ñ"Ô$à×'Ò'Ø×ÑÕð (ùò+øô ò 	à×Ñ˜wÔ'ØˆDŒLÜûð		ús*   Â-E9 ÃE4ÃE9 Å4E9 Å9	F$ÆFÆF$c                 óp  — |€&| j                   | j                  | j                  dz    }| j                  j                  ddd«       | j                  j                  ddd«       | j                  j                  ddd«       t	        |«      D ]©  \  }}| j                  |j                  «       «      }| j                  |«      }| j                  |«      }|j                  |«      D ]  }| j                  ||d«       Œ ||z
  D ]  }| j                  ||d«       Œ ||z
  D ]  }| j                  ||d«       Œ Œ« y )Nrh   rw  r˜   r•   ry  rz  )
r¡   r£   r–  rÿ  r!  r@  rA  r±  r²  r³  )rŠ   rò  ró  r´  r¹  rº  r»  r¼  s           rŒ   rÞ  z RegexpChunkApp._highlight_devset  s2  € Øˆ>Ø—[‘[ ×!2Ñ!2°T×5FÑ5FÈÑ5JÐKˆFà�‰×!Ñ! *¨e°UÔ;Ø�‰×!Ñ! +¨u°eÔ<Ø�‰×!Ñ! +¨u°eÔ<ô #,¨FÓ"3ò 	?ÑˆG�Yà×(Ñ(¨×)9Ñ)9Ó);Ó<ˆIàŸ,™, yÓ1ˆKØŸ,™, yÓ1ˆKà$×1Ñ1°+Ó>ò >�Ø×!Ñ! '¨5°*Õ=ð>à$ {Ñ2ò ?�Ø×!Ñ! '¨5°+Õ>ð?à$ {Ñ2ò ?�Ø×!Ñ! '¨5°+Õ>ñ?ñ	?rŽ   c                 ó°   — 	 | j                   j                  |«      S # t        t        f$ r)}| j                  j                  ddd«       |cY d }~S d }~ww xY w)Nr~  r˜   r•   )rž   Úparser�   Ú
IndexErrorr¶   r­  )rŠ   ÚwordsrÁ   s      rŒ   r@  zRegexpChunkApp._chunkparse5  sN   € ð	Ø—<‘<×%Ñ% eÓ,Ð,øÜœJÐ'ò 	ð �O‰O×#Ñ# G¨U°EÔ:à�Lûð	ús   ‚ �A¬AÁ
AÁAc           	      óÒ   — |\  }}| j                   j                  || j                  |   › d| j                  ||f   › �| j                  |   › d| j                  ||f   dz
  › �«       y )NrF   rh   )r–  r­  r°  r¯  )rŠ   ró  r¼  r%  rÎ  r•   s         rŒ   r³  zRegexpChunkApp._color_chunk@  sq   € Ø‰
ˆˆsØ�‰×ÑØØ�|‰|˜GÑ$Ð% Q t§|¡|°G¸U°NÑ'CÐ&DÐEØ�|‰|˜GÑ$Ð% Q t§|¡|°G¸S°LÑ'AÀAÑ'EÐ&FÐGõ	
rŽ   c                 óÒ   — d | _         d | _        d | _        d| _        g | _        d| _        | j                  j                  dd«       | j                  d«       | j                  «        y )Nr   r˜   r•   )
rž   r‹   rŸ   r    r¥   r¦   r¶   r  r¹   rº   )rŠ   s    rŒ   rë   zRegexpChunkApp.resetH  sZ   € àˆŒØˆŒØ"&ˆÔØ ˆÔØˆŒØˆÔà�‰×Ñ˜u eÔ,Ø×Ñ˜ÔØ�‰�rŽ   z®# Regexp Chunk Parsing Grammar
# Saved %(date)s
#
# Development set: %(devset)s
#   Precision: %(precision)s
#   Recall:    %(recall)s
#   F-score:   %(fscore)s

%(grammar)s
c                 ó  — |sddg}t        |d¬«      }|sy | j                  rL| j                  | j                  | j                  d   d   «      k(  rd„ | j                  d   dd  D «       \  }}}n| j                  €d	x}x}}nd
x}x}}t        |d«      5 }|j                  | j                  t        t        j                  «       | j                  |||| j                  j                  «       ¬«      z  «       d d d «       y # 1 sw Y   y xY w)N©zChunk Gramamrú.chunk©z	All filesÚ*r  ©Ú	filetypesÚdefaultextensionr‘   r   c              3   ó,   K  — | ]  }d d|z  z  –— Œ y­w)z%.2f%%r”   Nr¿  )rÀ  Úvs     rŒ   rÂ  z.RegexpChunkApp.save_grammar.<locals>.<genexpr>j  s   è ø€ ò )Ø)*�˜C !™GÕ$ñ)ùs   ‚rh   zGrammar not well formedzNot finished evaluation yetr  )Údater¡   r-  r.  r5  r‹   )r   r¥   rŸ   r�   rž   ÚopenÚwriteÚSAVE_GRAMMAR_TEMPLATEÚdictr9  Úctimer¢   r‹   r‰   )rŠ   ÚfilenameÚftypesr-  r.  r5  Úoutfiles          rŒ   r¿   zRegexpChunkApp.save_grammara  s  € ÙØ1Ð3EÐFˆFÜ(°6ÈHÔUˆHÙØØ�=Š=˜T×4Ñ4¸×8NÑ8NØ�M‰M˜"Ñ˜aÑ ó9
ò 
ñ)Ø.2¯m©m¸BÑ.?ÀÀÐ.Cô)Ñ%ˆI�v™vð �\‰\Ð!Ø*CÐCˆIÐC˜¡à*GÐGˆIÐG˜ ä�(˜CÓ ð 	 GØ�M‰MØ×*Ñ*ÜÜŸ™›Ø×+Ñ+Ø'Ø!Ø!Ø ŸL™L×.Ñ.Ó0ôñô
÷	÷ 	ñ 	ús   ÂA"C?Ã?Dc                 óŠ  — |sddg}t        |d¬«      }|sy | j                  j                  dd«       | j                  «        t	        |«      5 }|j                  «       }d d d «       t        j                  dd«      j                  «       }| j                  j                  d|«       | j                  «        y # 1 sw Y   Œ[xY w)	Nr  r  r  r  r˜   r•   z2^\# Regexp Chunk Parsing Grammar[\s\S]*F-score:.*
r7  )
r   r¶   r  rº   r  Úreadr‡   rˆ   Úlstripr—   )rŠ   r  r   Úinfiler‹   s        rŒ   rÅ   zRegexpChunkApp.load_grammar  s¦   € ÙØ1Ð3EÐFˆFÜ&°È(ÔSˆHÙØØ�‰×Ñ˜u eÔ,Ø�‰ŒÜ�(‹^ð 	$˜vØ—k‘k“mˆG÷	$ä—&‘&ØEÀrÈ7ó
ç
‰&‹(ð 	ð 	�‰×Ñ˜u gÔ.Ø�‰�÷	$ð 	$ús   ÁB9Â9Cc           	      óÌ  — |sddg}t        |d¬«      }|sy t        |d«      5 }|j                  d«       |j                  dt        j                  «       z  «       |j                  d| j
                  z  «       t        | j                  «      D ]Š  \  }\  }}}}d	|d
z   t        | j                  «      |dz  |dz  |dz  fz  }	|j                  d|	z  «       |j                  dj                  d„ |j                  «       j                  «       D «       «      «       ŒŒ | j                  r.| j                  | j                  | j                  d   d   «      k(  s|| j                  €|j                  d«       n|j                  d«       |j                  dj                  d„ | j                  j                  «       j                  «       D «       «      «       d d d «       y # 1 sw Y   y xY w)N)zChunk Gramamr Historyú.txtr  r'  r  r  z'# Regexp Chunk Parsing Grammar History
z# Saved %s
z# Development set: %s
z>Grammar %d/%d (precision=%.2f%%, recall=%.2f%%, fscore=%.2f%%)rh   r”   z
%s
r7  c              3   ó&   K  — | ]	  }d |z  –— Œ y­w©z  %s
Nr¿  ©rÀ  rá  s     rŒ   rÂ  z.RegexpChunkApp.save_history.<locals>.<genexpr>¡  s   è ø€ Ò%T¸$ h°¥oÑ%TùrÃ  r‘   r   z#
Current Grammar (not well-formed)
z!
Current Grammar (not evaluated)
c              3   ó&   K  — | ]	  }d |z  –— Œ y­wr)  r¿  r*  s     rŒ   rÂ  z.RegexpChunkApp.save_history.<locals>.<genexpr>­  s   è ø€ ÒU°˜H t�OÑUùrÃ  )r   r  r  r9  r  r¢   r!  r¥   r  rÈ  r‰   rÜ  rŸ   r�   rž   r‹   )
rŠ   r  r   r!  r,  rF  rG  rH  rI  Úhdrs
             rŒ   rì   zRegexpChunkApp.save_history�  s¤  € ÙØ7Ð9KÐLˆFÜ(°6ÈFÔSˆHÙØä�(˜CÓ ð 	 GØ�M‰MÐDÔEØ�M‰M˜.¬4¯:©:«<Ñ7Ô8Ø�M‰MÐ3°d×6FÑ6FÑFÔGÜ#,¨T¯]©]Ó#;ò V‘�‘<�A�q˜!˜Qð%à˜1‘uœc $§-¡-Ó0°!°c±'¸1¸s¹7ÀAÈÁGÐLñMð ð
 —‘˜h¨™nÔ-Ø—‘˜bŸg™gÑ%TÀ!Ç'Á'Ã)Ç/Á/ÓBSÔ%TÓTÕUðVð —’Ø×+Ñ+Ø×)Ñ)¨$¯-©-¸Ñ*;¸AÑ*>Ó?ò@ð —<‘<Ð'Ø—M‘MÐ"IÕJà—M‘MÐ"GÔHØ—‘Ø—G‘GÑU¸¿¹×8JÑ8JÓ8L×8RÑ8RÓ8TÔUÓUô÷-	÷ 	ñ 	ús   £F.GÇG#c                 ó–   — d}d}	 ddl m}  |||¬«      j                  «        y # t        $ r t	        | j
                  ||«       Y y w xY w)Nz<NLTK RegExp Chunk Parser Application
Written by Edward Loperz2About: Regular Expression Chunk Parser Applicationr   )ÚMessage)Úmessager­   )Útkinter.messageboxr.  ÚshowÚ	Exceptionr   r«   )rŠ   rÁ   ÚABOUTÚTITLEr.  s        rŒ   rñ   zRegexpChunkApp.about°  sF   € ØTˆØDˆð	-Ý2á˜E¨Ô/×4Ñ4Õ6øÜò 	-Ü�T—X‘X˜u eÖ,ð	-ús   †% ¥ AÁAc                 ó"  — |�| j                   j                  |«       | j                   j                  t        t        | j                  «      | j                   j                  «       «      «       | j                  d«       | j                  d«       y )Nrh   r   )r°   r±   r  r  r¡   rÏ   r¹   ©rŠ   r}   s     rŒ   rð   zRegexpChunkApp.set_devset_sizeº  sk   € ØÐØ×Ñ×!Ñ! $Ô'Ø×Ñ×Ñœc¤# d§k¡kÓ"2°D×4EÑ4E×4IÑ4IÓ4KÓLÔMØ×Ñ˜ÔØ×Ñ˜ÕrŽ   c                 ó*  — |�| j                   j                  |«       | j                   j                  «       }| j                  j	                  t        |«       ¬«       | j                  j	                  t        dt        |«       dz  dz  «      ¬«       y )N)r}   iöÿÿÿrÍ   r_   )rÎ   r±   rÏ   rÐ   r’  ÚabsrÒ   r  r6  s     rŒ   rï   zRegexpChunkApp.resizeÂ  so   € ØÐØ�J‰J�N‰N˜4Ô Ø�z‰z�~‰~ÓˆØ�
‰
×Ñ¤C¨£I ,ÐÔ/Ø�‰×!Ñ!¤s¨3´#°d³)°¸rÑ0AÀRÑ0GÓ'HÐ!ÕIrŽ   c                 óR   — t        «       ry | j                  j                  |i |¤Ž y)zñ
        Enter the Tkinter mainloop.  This function must be called if
        this demo is created from a non-interactive program (e.g.
        from a secript); otherwise, the demo will close as soon as
        the script completes.
        N)r   r«   Úmainloop)rŠ   rí  Úkwargss      rŒ   r:  zRegexpChunkApp.mainloopÉ  s%   € ô Œ9ØØˆ�‰×Ñ˜4Ð* 6Ó*rŽ   )r   Nr7  ÚNPNr¾   )BÚ__name__Ú
__module__Ú__qualname__Ú__doc__rš   r�  r  r”  r:  r?  r<  rO  rN  r…  r�  r•  rž  Ú_FONT_PARAMSr‚  r  rŠ  Ú_HELPTAB_BG_COLORÚ_HELPTAB_FG_COLORrÌ  rÏ  r‘  r�   r»   r´   r²   rµ   rÈ   r  Ú_DRAW_LINESrÊ   r8  r=  rD  r³   rû   rü   rc  r‰  rŒ  r×  rÆ   rÇ   r¯   r˜  r¹   r±  rÛ  r  rº   rÞ  r@  r³  rë   r  r¿   rÅ   rì   rñ   rð   rï   r:  r¿  rŽ   rŒ   r   r   -   s©  „ ñð.ØÐ(ð.àÐ$ð.ð 	Ðð.ð 	ˆhð	.ð
 	ˆlð.ð 	Ð$ð.ð 	Ð!ð.ð 	Ð$ð.ð 	ˆnð.ð 	ˆjð.ð 	ˆkð.ð 	ˆdð.ð 	Ð'ð.ð 	ˆnð.ð 	Ð'ð.ð  	Ðð!.ð" 	Ð ñ#.ð$ 	Ð!ð%.ð& 	ˆgð'.ð( 	ˆ~ð).ð* 	Ð&ð+.ð, 	Ð&ð-.ð. 	Ð+ð/.ð0 	Ð&ð1.ð2 	Ð$ð3.ð4 	ˆð5.ð6 	ˆð7.ð8 	ˆlð9.ð: 	Ð"ð;.ð< 	Ð&ð=.ð> 	Ð!ð?.ð@ 	ˆ{ðA.ðB 	ÐðC.ðD 	Ð ñE.ðF ØØØØ+Ø,Ø/Ø4Ø0Ø0Øò[.€Fòne€DðP 
‘ Ô'Ð(Ø	‘$ &Ô)Ð*Ø	‘d fÔ-Ð.Ø	‘d TÔ*Ð+Ø	‰t˜dÔ#Ð$Ø	‘4 ¨bÔ1Ð2Ø	‘t Q°Ô4Ð5Ø	‘ Ô'Ð(Ø	‘4 6Ô*Ð+Ø	‘$ &Ô)Ð*ð€Lð" €Kð+ð €Kð#à€JØCØ€Oðð €Oðñ ØØØØ"ØØØØô	Ðñ ØØØØ"ØØØØØô
€Oñ ØØØØ"ØØØØØô
Ðñ  V°HÀQÔG€NÙ˜{°Ô5€LÙ F°¸À1ÔE€MÙØØ"ØØØØØô€Oñ Ø¨FÈô€Nð ÐØÐá¨Ô0ÐÙ¨Ô0ÐØ€Oò	ð  ØØØØóiòV:ò
ò`$òDð €HØ€KòE"ðN  ÐòIJòVò0{Jðz €Nò==ò~ +òDòò'3òRòòòó+,òZ
ò;ò6!ò"1óf?ò.	ò
òð	ð óó<ó òB-óóJó	+rŽ   r   c                  ó4   — t        «       j                  «        y r¾   )r   r:  r¿  rŽ   rŒ   ÚapprF  Õ  s   € ÜÓ×ÑÕrŽ   Ú__main__rF  )'r@  Úrandomr‡   Útextwrapr9  Útkinterr   r   r   r   r   r   r	   r
   r   r   Útkinter.filedialogr   r   Útkinter.fontr   Ú
nltk.chunkr   r   Únltk.chunk.regexpr   Únltk.corpusr   r   Únltk.draw.utilr   Ú	nltk.treer   Ú	nltk.utilr   r   rF  r=  Ú__all__r¿  rŽ   rŒ   ú<module>rT     sj   ðñó Û 	Û Û ÷÷ ÷ ÷ BÝ ç 4Ý -ß 1Ý #Ý Ý ÷e+ñ e+òP- ð ˆzÒÙ„Eàˆ'�rŽ   