~ubuntu-branches/ubuntu/vivid/tesseract/vivid

« back to all changes in this revision

Viewing changes to doc/html/a00612.html

  • Committer: Package Import Robot
  • Author(s): Jeff Breidenbach
  • Date: 2014-02-03 11:10:20 UTC
  • mfrom: (1.3.1) (19.1.1 experimental)
  • Revision ID: package-import@ubuntu.com-20140203111020-igquodd7pjlp3uri
Tags: 3.03.01-1
* New upstream release, includes critical fix to PDF rendering
* Complete leptonlib transition (see bug #735509)
* Promote from experimental to unstable

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
2
<html xmlns="http://www.w3.org/1999/xhtml">
 
3
<head>
 
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
 
5
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
 
6
<title>tesseract: tesseract::TessLangModel Class Reference</title>
 
7
 
 
8
<link href="tabs.css" rel="stylesheet" type="text/css"/>
 
9
<link href="doxygen.css" rel="stylesheet" type="text/css" />
 
10
<link href="navtree.css" rel="stylesheet" type="text/css"/>
 
11
<script type="text/javascript" src="jquery.js"></script>
 
12
<script type="text/javascript" src="resize.js"></script>
 
13
<script type="text/javascript" src="navtree.js"></script>
 
14
<script type="text/javascript">
 
15
  $(document).ready(initResizable);
 
16
</script>
 
17
<link href="search/search.css" rel="stylesheet" type="text/css"/>
 
18
<script type="text/javascript" src="search/search.js"></script>
 
19
<script type="text/javascript">
 
20
  $(document).ready(function() { searchBox.OnSelectItem(0); });
 
21
</script>
 
22
 
 
23
</head>
 
24
<body>
 
25
<div id="top"><!-- do not remove this div! -->
 
26
 
 
27
 
 
28
<div id="titlearea">
 
29
<table cellspacing="0" cellpadding="0">
 
30
 <tbody>
 
31
 <tr style="height: 56px;">
 
32
  
 
33
  
 
34
  <td style="padding-left: 0.5em;">
 
35
   <div id="projectname">tesseract
 
36
   &#160;<span id="projectnumber">3.03</span>
 
37
   </div>
 
38
   
 
39
  </td>
 
40
  
 
41
  
 
42
  
 
43
 </tr>
 
44
 </tbody>
 
45
</table>
 
46
</div>
 
47
 
 
48
<!-- Generated by Doxygen 1.7.6.1 -->
 
49
<script type="text/javascript">
 
50
var searchBox = new SearchBox("searchBox", "search",false,'Search');
 
51
</script>
 
52
  <div id="navrow1" class="tabs">
 
53
    <ul class="tablist">
 
54
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
 
55
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
 
56
      <li><a href="modules.html"><span>Modules</span></a></li>
 
57
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
 
58
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
 
59
      <li><a href="files.html"><span>Files</span></a></li>
 
60
      <li>
 
61
        <div id="MSearchBox" class="MSearchBoxInactive">
 
62
        <span class="left">
 
63
          <img id="MSearchSelect" src="search/mag_sel.png"
 
64
               onmouseover="return searchBox.OnSearchSelectShow()"
 
65
               onmouseout="return searchBox.OnSearchSelectHide()"
 
66
               alt=""/>
 
67
          <input type="text" id="MSearchField" value="Search" accesskey="S"
 
68
               onfocus="searchBox.OnSearchFieldFocus(true)" 
 
69
               onblur="searchBox.OnSearchFieldFocus(false)" 
 
70
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
 
71
          </span><span class="right">
 
72
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
 
73
          </span>
 
74
        </div>
 
75
      </li>
 
76
    </ul>
 
77
  </div>
 
78
  <div id="navrow2" class="tabs2">
 
79
    <ul class="tablist">
 
80
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
 
81
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
 
82
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
 
83
    </ul>
 
84
  </div>
 
85
</div>
 
86
<div id="side-nav" class="ui-resizable side-nav-resizable">
 
87
  <div id="nav-tree">
 
88
    <div id="nav-tree-contents">
 
89
    </div>
 
90
  </div>
 
91
  <div id="splitbar" style="-moz-user-select:none;" 
 
92
       class="ui-resizable-handle">
 
93
  </div>
 
94
</div>
 
95
<script type="text/javascript">
 
96
  initNavTree('a00612.html','');
 
97
</script>
 
98
<div id="doc-content">
 
99
<div class="header">
 
100
  <div class="summary">
 
101
<a href="#pub-methods">Public Member Functions</a>  </div>
 
102
  <div class="headertitle">
 
103
<div class="title">tesseract::TessLangModel Class Reference</div>  </div>
 
104
</div><!--header-->
 
105
<div class="contents">
 
106
<!-- doxytag: class="tesseract::TessLangModel" --><!-- doxytag: inherits="tesseract::LangModel" -->
 
107
<p><code>#include &lt;<a class="el" href="a01012_source.html">tess_lang_model.h</a>&gt;</code></p>
 
108
<div class="dynheader">
 
109
Inheritance diagram for tesseract::TessLangModel:</div>
 
110
<div class="dyncontent">
 
111
 <div class="center">
 
112
  <img src="a00612.png" usemap="#tesseract::TessLangModel_map" alt=""/>
 
113
  <map id="tesseract::TessLangModel_map" name="tesseract::TessLangModel_map">
 
114
<area href="a00445.html" alt="tesseract::LangModel" shape="rect" coords="0,0,158,24"/>
 
115
</map>
 
116
 </div></div>
 
117
 
 
118
<p><a href="a01850.html">List of all members.</a></p>
 
119
<table class="memberdecls">
 
120
<tr><td colspan="2"><h2><a name="pub-methods"></a>
 
121
Public Member Functions</h2></td></tr>
 
122
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00612.html#a23d5290b102bb43428957c4c4a96e6d6">TessLangModel</a> (const string &amp;lm_params, const string &amp;data_file_path, bool load_system_dawg, <a class="el" href="a00606.html">TessdataManager</a> *tessdata_manager, <a class="el" href="a00339.html">CubeRecoContext</a> *cntxt)</td></tr>
 
123
<tr><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00612.html#a3976ab4c324b005b9165609e3b077dbc">~TessLangModel</a> ()</td></tr>
 
124
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00611.html">TessLangModEdge</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00612.html#a939ea7ad8b064d8167b3c7019bf82d9f">Root</a> ()</td></tr>
 
125
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00444.html">LangModEdge</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00612.html#abd9a2fc77fe18caeb4a8f17020b460a4">GetEdges</a> (<a class="el" href="a00300.html">CharAltList</a> *alt_list, <a class="el" href="a00444.html">LangModEdge</a> *edge, int *edge_cnt)</td></tr>
 
126
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00612.html#a2c303d6052f7b99c6b65a497592e5e2e">IsValidSequence</a> (const <a class="el" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a> *sequence, bool eow_flag, <a class="el" href="a00444.html">LangModEdge</a> **final_edge=NULL)</td></tr>
 
127
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00612.html#ae012b6f6dec52e66ccc7b78fa8975b10">IsLeadingPunc</a> (<a class="el" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a> ch)</td></tr>
 
128
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00612.html#aed986e1547e8faf18a522ef074e0413a">IsTrailingPunc</a> (<a class="el" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a> ch)</td></tr>
 
129
<tr><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00612.html#a69d61128a73ddf1e9ce709a3808c6530">IsDigit</a> (<a class="el" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a> ch)</td></tr>
 
130
<tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="a00612.html#a1fc3e4c81803a84dba0ff7dd1e0ec936">RemoveInvalidCharacters</a> (string *lm_str)</td></tr>
 
131
</table>
 
132
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
 
133
<div class="textblock">
 
134
<p>Definition at line <a class="el" href="a01012_source.html#l00038">38</a> of file <a class="el" href="a01012_source.html">tess_lang_model.h</a>.</p>
 
135
</div><hr/><h2>Constructor &amp; Destructor Documentation</h2>
 
136
<a class="anchor" id="a23d5290b102bb43428957c4c4a96e6d6"></a><!-- doxytag: member="tesseract::TessLangModel::TessLangModel" ref="a23d5290b102bb43428957c4c4a96e6d6" args="(const string &amp;lm_params, const string &amp;data_file_path, bool load_system_dawg, TessdataManager *tessdata_manager, CubeRecoContext *cntxt)" -->
 
137
<div class="memitem">
 
138
<div class="memproto">
 
139
      <table class="memname">
 
140
        <tr>
 
141
          <td class="memname"><a class="el" href="a00612.html#a23d5290b102bb43428957c4c4a96e6d6">tesseract::TessLangModel::TessLangModel</a> </td>
 
142
          <td>(</td>
 
143
          <td class="paramtype">const string &amp;&#160;</td>
 
144
          <td class="paramname"><em>lm_params</em>, </td>
 
145
        </tr>
 
146
        <tr>
 
147
          <td class="paramkey"></td>
 
148
          <td></td>
 
149
          <td class="paramtype">const string &amp;&#160;</td>
 
150
          <td class="paramname"><em>data_file_path</em>, </td>
 
151
        </tr>
 
152
        <tr>
 
153
          <td class="paramkey"></td>
 
154
          <td></td>
 
155
          <td class="paramtype">bool&#160;</td>
 
156
          <td class="paramname"><em>load_system_dawg</em>, </td>
 
157
        </tr>
 
158
        <tr>
 
159
          <td class="paramkey"></td>
 
160
          <td></td>
 
161
          <td class="paramtype"><a class="el" href="a00606.html">TessdataManager</a> *&#160;</td>
 
162
          <td class="paramname"><em>tessdata_manager</em>, </td>
 
163
        </tr>
 
164
        <tr>
 
165
          <td class="paramkey"></td>
 
166
          <td></td>
 
167
          <td class="paramtype"><a class="el" href="a00339.html">CubeRecoContext</a> *&#160;</td>
 
168
          <td class="paramname"><em>cntxt</em>&#160;</td>
 
169
        </tr>
 
170
        <tr>
 
171
          <td></td>
 
172
          <td>)</td>
 
173
          <td></td><td></td>
 
174
        </tr>
 
175
      </table>
 
176
</div>
 
177
<div class="memdoc">
 
178
 
 
179
<p>Definition at line <a class="el" href="a01011_source.html#l00060">60</a> of file <a class="el" href="a01011_source.html">tess_lang_model.cpp</a>.</p>
 
180
<div class="fragment"><pre class="fragment">                                                     {
 
181
  cntxt_ = cntxt;
 
182
  has_case_ = cntxt_-&gt;<a class="code" href="a00339.html#a935e5758a4674f439814ec57b8c4d42b">HasCase</a>();
 
183
  <span class="comment">// Load the rest of the language model elements from file</span>
 
184
  LoadLangModelElements(lm_params);
 
185
  <span class="comment">// Load word_dawgs_ if needed.</span>
 
186
  <span class="keywordflow">if</span> (tessdata_manager-&gt;SeekToStart(<a class="code" href="a01265.html#a5f278974ef80900b460194614d4f1899a87310a274403592ee7b1bd07e8b29973">TESSDATA_CUBE_UNICHARSET</a>)) {
 
187
    word_dawgs_ = <span class="keyword">new</span> <a class="code" href="a01265.html#a8dc259fa09d9302b96f5b3d2aad10c9f">DawgVector</a>();
 
188
    <span class="keywordflow">if</span> (load_system_dawg &amp;&amp;
 
189
        tessdata_manager-&gt;SeekToStart(<a class="code" href="a01265.html#a5f278974ef80900b460194614d4f1899a445f2a31c9940f2027a67ba8f8630f9f">TESSDATA_CUBE_SYSTEM_DAWG</a>)) {
 
190
      <span class="comment">// The last parameter to the Dawg constructor (the debug level) is set to</span>
 
191
      <span class="comment">// false, until Cube has a way to express its preferred debug level.</span>
 
192
      *word_dawgs_ +=  <span class="keyword">new</span> SquishedDawg(tessdata_manager-&gt;GetDataFilePtr(),
 
193
                                        <a class="code" href="a01265.html#a07c41f251f1782c60df4e626c35d2151a9c67e397ff6d57a705cd4cd4524a2b34">DAWG_TYPE_WORD</a>,
 
194
                                        cntxt_-&gt;<a class="code" href="a00339.html#a5e8e654a7db7d086d7e05d08bb53fa97">Lang</a>().c_str(),
 
195
                                        <a class="code" href="a00788.html#a18e2c75cefe9e5b78e8ce41aa5fa25bca616bdbcaed7dd414823b303af5c8b1f1">SYSTEM_DAWG_PERM</a>, <span class="keyword">false</span>);
 
196
    }
 
197
  } <span class="keywordflow">else</span> {
 
198
    word_dawgs_ = NULL;
 
199
  }
 
200
}
 
201
</pre></div>
 
202
</div>
 
203
</div>
 
204
<a class="anchor" id="a3976ab4c324b005b9165609e3b077dbc"></a><!-- doxytag: member="tesseract::TessLangModel::~TessLangModel" ref="a3976ab4c324b005b9165609e3b077dbc" args="()" -->
 
205
<div class="memitem">
 
206
<div class="memproto">
 
207
      <table class="memname">
 
208
        <tr>
 
209
          <td class="memname"><a class="el" href="a00612.html#a3976ab4c324b005b9165609e3b077dbc">tesseract::TessLangModel::~TessLangModel</a> </td>
 
210
          <td>(</td>
 
211
          <td class="paramname"></td><td>)</td>
 
212
          <td><code> [inline]</code></td>
 
213
        </tr>
 
214
      </table>
 
215
</div>
 
216
<div class="memdoc">
 
217
 
 
218
<p>Definition at line <a class="el" href="a01012_source.html#l00045">45</a> of file <a class="el" href="a01012_source.html">tess_lang_model.h</a>.</p>
 
219
<div class="fragment"><pre class="fragment">                   {
 
220
    <span class="keywordflow">if</span> (word_dawgs_ != NULL) {
 
221
      word_dawgs_-&gt;<a class="code" href="a00403.html#a98f62dccd75224a60437c2761bd215cd">delete_data_pointers</a>();
 
222
      <span class="keyword">delete</span> word_dawgs_;
 
223
    }
 
224
  }
 
225
</pre></div>
 
226
</div>
 
227
</div>
 
228
<hr/><h2>Member Function Documentation</h2>
 
229
<a class="anchor" id="abd9a2fc77fe18caeb4a8f17020b460a4"></a><!-- doxytag: member="tesseract::TessLangModel::GetEdges" ref="abd9a2fc77fe18caeb4a8f17020b460a4" args="(CharAltList *alt_list, LangModEdge *edge, int *edge_cnt)" -->
 
230
<div class="memitem">
 
231
<div class="memproto">
 
232
      <table class="memname">
 
233
        <tr>
 
234
          <td class="memname"><a class="el" href="a00444.html">LangModEdge</a> ** <a class="el" href="a00612.html#abd9a2fc77fe18caeb4a8f17020b460a4">tesseract::TessLangModel::GetEdges</a> </td>
 
235
          <td>(</td>
 
236
          <td class="paramtype"><a class="el" href="a00300.html">CharAltList</a> *&#160;</td>
 
237
          <td class="paramname"><em>alt_list</em>, </td>
 
238
        </tr>
 
239
        <tr>
 
240
          <td class="paramkey"></td>
 
241
          <td></td>
 
242
          <td class="paramtype"><a class="el" href="a00444.html">LangModEdge</a> *&#160;</td>
 
243
          <td class="paramname"><em>edge</em>, </td>
 
244
        </tr>
 
245
        <tr>
 
246
          <td class="paramkey"></td>
 
247
          <td></td>
 
248
          <td class="paramtype">int *&#160;</td>
 
249
          <td class="paramname"><em>edge_cnt</em>&#160;</td>
 
250
        </tr>
 
251
        <tr>
 
252
          <td></td>
 
253
          <td>)</td>
 
254
          <td></td><td><code> [virtual]</code></td>
 
255
        </tr>
 
256
      </table>
 
257
</div>
 
258
<div class="memdoc">
 
259
 
 
260
<p>Implements <a class="el" href="a00445.html#a61071a0736427f808d7134aeeb456701">tesseract::LangModel</a>.</p>
 
261
 
 
262
<p>Definition at line <a class="el" href="a01011_source.html#l00169">169</a> of file <a class="el" href="a01011_source.html">tess_lang_model.cpp</a>.</p>
 
263
<div class="fragment"><pre class="fragment">                                                      {
 
264
  TessLangModEdge *tess_lm_edge =
 
265
      <span class="keyword">reinterpret_cast&lt;</span>TessLangModEdge *<span class="keyword">&gt;</span>(lang_mod_edge);
 
266
  LangModEdge **edge_array = NULL;
 
267
  (*edge_cnt) = 0;
 
268
 
 
269
  <span class="comment">// if we are starting from the root, we&#39;ll instantiate every DAWG</span>
 
270
  <span class="comment">// and get the all the edges that emerge from the root</span>
 
271
  <span class="keywordflow">if</span> (tess_lm_edge == NULL) {
 
272
    <span class="comment">// get DAWG count from Tesseract</span>
 
273
    <span class="keywordtype">int</span> dawg_cnt = NumDawgs();
 
274
    <span class="comment">// preallocate the edge buffer</span>
 
275
    (*edge_cnt) = dawg_cnt * max_edge_;
 
276
    edge_array = <span class="keyword">new</span> LangModEdge *[(*edge_cnt)];
 
277
    <span class="keywordflow">if</span> (edge_array == NULL) {
 
278
      <span class="keywordflow">return</span> NULL;
 
279
    }
 
280
 
 
281
    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> dawg_idx = (*edge_cnt) = 0; dawg_idx &lt; dawg_cnt; dawg_idx++) {
 
282
      <span class="keyword">const</span> Dawg *curr_dawg = GetDawg(dawg_idx);
 
283
      <span class="comment">// Only look through word Dawgs (since there is a special way of</span>
 
284
      <span class="comment">// handling numbers and punctuation).</span>
 
285
      <span class="keywordflow">if</span> (curr_dawg-&gt;type() == <a class="code" href="a01265.html#a07c41f251f1782c60df4e626c35d2151a9c67e397ff6d57a705cd4cd4524a2b34">DAWG_TYPE_WORD</a>) {
 
286
        (*edge_cnt) += FanOut(alt_list, curr_dawg, 0, 0, NULL, <span class="keyword">true</span>,
 
287
                              edge_array + (*edge_cnt));
 
288
      }
 
289
    }  <span class="comment">// dawg</span>
 
290
 
 
291
    (*edge_cnt) += FanOut(alt_list, number_dawg_, 0, 0, NULL, <span class="keyword">true</span>,
 
292
                          edge_array + (*edge_cnt));
 
293
 
 
294
    <span class="comment">// OOD: it is intentionally not added to the list to make sure it comes</span>
 
295
    <span class="comment">// at the end</span>
 
296
    (*edge_cnt) += FanOut(alt_list, ood_dawg_, 0, 0, NULL, <span class="keyword">true</span>,
 
297
                          edge_array + (*edge_cnt));
 
298
 
 
299
    <span class="comment">// set the root flag for all root edges</span>
 
300
    <span class="keywordflow">for</span> (<span class="keywordtype">int</span> edge_idx = 0; edge_idx &lt; (*edge_cnt); edge_idx++) {
 
301
      edge_array[edge_idx]-&gt;SetRoot(<span class="keyword">true</span>);
 
302
    }
 
303
  } <span class="keywordflow">else</span> {  <span class="comment">// not starting at the root</span>
 
304
    <span class="comment">// preallocate the edge buffer</span>
 
305
    (*edge_cnt) = max_edge_;
 
306
    <span class="comment">// allocate memory for edges</span>
 
307
    edge_array = <span class="keyword">new</span> LangModEdge *[(*edge_cnt)];
 
308
    <span class="keywordflow">if</span> (edge_array == NULL) {
 
309
      <span class="keywordflow">return</span> NULL;
 
310
    }
 
311
 
 
312
    <span class="comment">// get the FanOut edges from the root of each dawg</span>
 
313
    (*edge_cnt) = FanOut(alt_list,
 
314
                         tess_lm_edge-&gt;GetDawg(),
 
315
                         tess_lm_edge-&gt;EndEdge(), tess_lm_edge-&gt;EdgeMask(),
 
316
                         tess_lm_edge-&gt;EdgeString(), <span class="keyword">false</span>, edge_array);
 
317
  }
 
318
  <span class="keywordflow">return</span> edge_array;
 
319
}
 
320
</pre></div>
 
321
</div>
 
322
</div>
 
323
<a class="anchor" id="a69d61128a73ddf1e9ce709a3808c6530"></a><!-- doxytag: member="tesseract::TessLangModel::IsDigit" ref="a69d61128a73ddf1e9ce709a3808c6530" args="(char_32 ch)" -->
 
324
<div class="memitem">
 
325
<div class="memproto">
 
326
      <table class="memname">
 
327
        <tr>
 
328
          <td class="memname">bool <a class="el" href="a00612.html#a69d61128a73ddf1e9ce709a3808c6530">tesseract::TessLangModel::IsDigit</a> </td>
 
329
          <td>(</td>
 
330
          <td class="paramtype"><a class="el" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a>&#160;</td>
 
331
          <td class="paramname"><em>ch</em></td><td>)</td>
 
332
          <td><code> [virtual]</code></td>
 
333
        </tr>
 
334
      </table>
 
335
</div>
 
336
<div class="memdoc">
 
337
 
 
338
<p>Implements <a class="el" href="a00445.html#aae119709c73d00d731c65588be763a1d">tesseract::LangModel</a>.</p>
 
339
 
 
340
<p>Definition at line <a class="el" href="a01011_source.html#l00162">162</a> of file <a class="el" href="a01011_source.html">tess_lang_model.cpp</a>.</p>
 
341
<div class="fragment"><pre class="fragment">                                            {
 
342
  <span class="keywordflow">return</span> digits_.find(ch) != string::npos;
 
343
}
 
344
</pre></div>
 
345
</div>
 
346
</div>
 
347
<a class="anchor" id="ae012b6f6dec52e66ccc7b78fa8975b10"></a><!-- doxytag: member="tesseract::TessLangModel::IsLeadingPunc" ref="ae012b6f6dec52e66ccc7b78fa8975b10" args="(char_32 ch)" -->
 
348
<div class="memitem">
 
349
<div class="memproto">
 
350
      <table class="memname">
 
351
        <tr>
 
352
          <td class="memname">bool <a class="el" href="a00612.html#ae012b6f6dec52e66ccc7b78fa8975b10">tesseract::TessLangModel::IsLeadingPunc</a> </td>
 
353
          <td>(</td>
 
354
          <td class="paramtype"><a class="el" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a>&#160;</td>
 
355
          <td class="paramname"><em>ch</em></td><td>)</td>
 
356
          <td><code> [virtual]</code></td>
 
357
        </tr>
 
358
      </table>
 
359
</div>
 
360
<div class="memdoc">
 
361
 
 
362
<p>Implements <a class="el" href="a00445.html#ade13ad9a3c3f6bb19a1071aa20bffb4b">tesseract::LangModel</a>.</p>
 
363
 
 
364
<p>Definition at line <a class="el" href="a01011_source.html#l00154">154</a> of file <a class="el" href="a01011_source.html">tess_lang_model.cpp</a>.</p>
 
365
<div class="fragment"><pre class="fragment">                                                  {
 
366
  <span class="keywordflow">return</span> lead_punc_.find(ch) != string::npos;
 
367
}
 
368
</pre></div>
 
369
</div>
 
370
</div>
 
371
<a class="anchor" id="aed986e1547e8faf18a522ef074e0413a"></a><!-- doxytag: member="tesseract::TessLangModel::IsTrailingPunc" ref="aed986e1547e8faf18a522ef074e0413a" args="(char_32 ch)" -->
 
372
<div class="memitem">
 
373
<div class="memproto">
 
374
      <table class="memname">
 
375
        <tr>
 
376
          <td class="memname">bool <a class="el" href="a00612.html#aed986e1547e8faf18a522ef074e0413a">tesseract::TessLangModel::IsTrailingPunc</a> </td>
 
377
          <td>(</td>
 
378
          <td class="paramtype"><a class="el" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a>&#160;</td>
 
379
          <td class="paramname"><em>ch</em></td><td>)</td>
 
380
          <td><code> [virtual]</code></td>
 
381
        </tr>
 
382
      </table>
 
383
</div>
 
384
<div class="memdoc">
 
385
 
 
386
<p>Implements <a class="el" href="a00445.html#a0235bd607e1d0cd00082661e0b71d495">tesseract::LangModel</a>.</p>
 
387
 
 
388
<p>Definition at line <a class="el" href="a01011_source.html#l00158">158</a> of file <a class="el" href="a01011_source.html">tess_lang_model.cpp</a>.</p>
 
389
<div class="fragment"><pre class="fragment">                                                   {
 
390
  <span class="keywordflow">return</span> trail_punc_.find(ch) != string::npos;
 
391
}
 
392
</pre></div>
 
393
</div>
 
394
</div>
 
395
<a class="anchor" id="a2c303d6052f7b99c6b65a497592e5e2e"></a><!-- doxytag: member="tesseract::TessLangModel::IsValidSequence" ref="a2c303d6052f7b99c6b65a497592e5e2e" args="(const char_32 *sequence, bool eow_flag, LangModEdge **final_edge=NULL)" -->
 
396
<div class="memitem">
 
397
<div class="memproto">
 
398
      <table class="memname">
 
399
        <tr>
 
400
          <td class="memname">bool <a class="el" href="a00612.html#a2c303d6052f7b99c6b65a497592e5e2e">tesseract::TessLangModel::IsValidSequence</a> </td>
 
401
          <td>(</td>
 
402
          <td class="paramtype">const <a class="el" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a> *&#160;</td>
 
403
          <td class="paramname"><em>sequence</em>, </td>
 
404
        </tr>
 
405
        <tr>
 
406
          <td class="paramkey"></td>
 
407
          <td></td>
 
408
          <td class="paramtype">bool&#160;</td>
 
409
          <td class="paramname"><em>eow_flag</em>, </td>
 
410
        </tr>
 
411
        <tr>
 
412
          <td class="paramkey"></td>
 
413
          <td></td>
 
414
          <td class="paramtype"><a class="el" href="a00444.html">LangModEdge</a> **&#160;</td>
 
415
          <td class="paramname"><em>final_edge</em> = <code>NULL</code>&#160;</td>
 
416
        </tr>
 
417
        <tr>
 
418
          <td></td>
 
419
          <td>)</td>
 
420
          <td></td><td><code> [virtual]</code></td>
 
421
        </tr>
 
422
      </table>
 
423
</div>
 
424
<div class="memdoc">
 
425
 
 
426
<p>Implements <a class="el" href="a00445.html#a8b2edb01fa6b82d7a0eba6fb28717494">tesseract::LangModel</a>.</p>
 
427
 
 
428
<p>Definition at line <a class="el" href="a01011_source.html#l00145">145</a> of file <a class="el" href="a01011_source.html">tess_lang_model.cpp</a>.</p>
 
429
<div class="fragment"><pre class="fragment">                                                              {
 
430
  <span class="keywordflow">if</span> (final_edge != NULL) {
 
431
    (*final_edge) = NULL;
 
432
  }
 
433
 
 
434
  <span class="keywordflow">return</span> <a class="code" href="a00612.html#a2c303d6052f7b99c6b65a497592e5e2e">IsValidSequence</a>(NULL, sequence, eow_flag, final_edge);
 
435
}
 
436
</pre></div>
 
437
</div>
 
438
</div>
 
439
<a class="anchor" id="a1fc3e4c81803a84dba0ff7dd1e0ec936"></a><!-- doxytag: member="tesseract::TessLangModel::RemoveInvalidCharacters" ref="a1fc3e4c81803a84dba0ff7dd1e0ec936" args="(string *lm_str)" -->
 
440
<div class="memitem">
 
441
<div class="memproto">
 
442
      <table class="memname">
 
443
        <tr>
 
444
          <td class="memname">void <a class="el" href="a00612.html#a1fc3e4c81803a84dba0ff7dd1e0ec936">tesseract::TessLangModel::RemoveInvalidCharacters</a> </td>
 
445
          <td>(</td>
 
446
          <td class="paramtype">string *&#160;</td>
 
447
          <td class="paramname"><em>lm_str</em></td><td>)</td>
 
448
          <td></td>
 
449
        </tr>
 
450
      </table>
 
451
</div>
 
452
<div class="memdoc">
 
453
 
 
454
<p>Definition at line <a class="el" href="a01011_source.html#l00482">482</a> of file <a class="el" href="a01011_source.html">tess_lang_model.cpp</a>.</p>
 
455
<div class="fragment"><pre class="fragment">                                                          {
 
456
  CharSet *char_set = cntxt_-&gt;<a class="code" href="a00339.html#ab9c6b5f85ef4baa38ad8ef9c949b8dee">CharacterSet</a>();
 
457
  <a class="code" href="a01265.html#a5e51e225e3ac13c918ed9f77715fa041">tesseract::string_32</a> lm_str32;
 
458
  <a class="code" href="a01265.html#a903ffe993b52191b0b18a019dd790276">CubeUtils::UTF8ToUTF32</a>(lm_str-&gt;c_str(), &amp;lm_str32);
 
459
 
 
460
  <span class="keywordtype">int</span> len = <a class="code" href="a00343.html#a88fe596e3dcadab7909c0bff64f61f59">CubeUtils::StrLen</a>(lm_str32.c_str());
 
461
  <a class="code" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a> *clean_str32 = <span class="keyword">new</span> <a class="code" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a>[len + 1];
 
462
  <span class="keywordflow">if</span> (!clean_str32)
 
463
    <span class="keywordflow">return</span>;
 
464
  <span class="keywordtype">int</span> clean_len = 0;
 
465
  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; len; ++i) {
 
466
    <span class="keywordtype">int</span> class_id = char_set-&gt;ClassID((<a class="code" href="a01265.html#aea2c6172b0ca77907e29cd018595b425">char_32</a>)lm_str32[i]);
 
467
    <span class="keywordflow">if</span> (class_id != INVALID_UNICHAR_ID) {
 
468
      clean_str32[clean_len] = lm_str32[i];
 
469
      ++clean_len;
 
470
    }
 
471
  }
 
472
  clean_str32[clean_len] = 0;
 
473
  <span class="keywordflow">if</span> (clean_len &lt; len) {
 
474
    lm_str-&gt;clear();
 
475
    <a class="code" href="a01265.html#a34f64417c417283fbb3cbdd220e77ae2">CubeUtils::UTF32ToUTF8</a>(clean_str32, lm_str);
 
476
  }
 
477
  <span class="keyword">delete</span> [] clean_str32;
 
478
}
 
479
</pre></div>
 
480
</div>
 
481
</div>
 
482
<a class="anchor" id="a939ea7ad8b064d8167b3c7019bf82d9f"></a><!-- doxytag: member="tesseract::TessLangModel::Root" ref="a939ea7ad8b064d8167b3c7019bf82d9f" args="()" -->
 
483
<div class="memitem">
 
484
<div class="memproto">
 
485
      <table class="memname">
 
486
        <tr>
 
487
          <td class="memname"><a class="el" href="a00611.html">TessLangModEdge</a>* <a class="el" href="a00612.html#a939ea7ad8b064d8167b3c7019bf82d9f">tesseract::TessLangModel::Root</a> </td>
 
488
          <td>(</td>
 
489
          <td class="paramname"></td><td>)</td>
 
490
          <td><code> [inline, virtual]</code></td>
 
491
        </tr>
 
492
      </table>
 
493
</div>
 
494
<div class="memdoc">
 
495
 
 
496
<p>Implements <a class="el" href="a00445.html#a46178bf09d08aa9c8048adb0a8561b75">tesseract::LangModel</a>.</p>
 
497
 
 
498
<p>Definition at line <a class="el" href="a01012_source.html#l00053">53</a> of file <a class="el" href="a01012_source.html">tess_lang_model.h</a>.</p>
 
499
<div class="fragment"><pre class="fragment">                                 {
 
500
    <span class="keywordflow">return</span> NULL;
 
501
  }
 
502
</pre></div>
 
503
</div>
 
504
</div>
 
505
<hr/>The documentation for this class was generated from the following files:<ul>
 
506
<li>/usr/local/google/home/jbreiden/tesseract-ocr-read-only/cube/<a class="el" href="a01012_source.html">tess_lang_model.h</a></li>
 
507
<li>/usr/local/google/home/jbreiden/tesseract-ocr-read-only/cube/<a class="el" href="a01011_source.html">tess_lang_model.cpp</a></li>
 
508
</ul>
 
509
</div><!-- contents -->
 
510
</div>
 
511
<!-- window showing the filter options -->
 
512
<div id="MSearchSelectWindow"
 
513
     onmouseover="return searchBox.OnSearchSelectShow()"
 
514
     onmouseout="return searchBox.OnSearchSelectHide()"
 
515
     onkeydown="return searchBox.OnSearchSelectKey(event)">
 
516
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Defines</a></div>
 
517
 
 
518
<!-- iframe showing the search results (closed by default) -->
 
519
<div id="MSearchResultsWindow">
 
520
<iframe src="javascript:void(0)" frameborder="0" 
 
521
        name="MSearchResults" id="MSearchResults">
 
522
</iframe>
 
523
</div>
 
524
 
 
525
  <div id="nav-path" class="navpath">
 
526
    <ul>
 
527
      <li class="navelem"><a class="el" href="a01265.html">tesseract</a>      </li>
 
528
      <li class="navelem"><a class="el" href="a00612.html">TessLangModel</a>      </li>
 
529
 
 
530
    <li class="footer">Generated on Mon Feb 3 2014 10:59:21 for tesseract by
 
531
    <a href="http://www.doxygen.org/index.html">
 
532
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.6.1 </li>
 
533
   </ul>
 
534
 </div>
 
535
 
 
536
 
 
537
</body>
 
538
</html>