├── .gitignore ├── .noserc ├── .travis.yml ├── MIT-LICENSE ├── Makefile ├── Readme.md ├── data └── english.stop ├── requirement.txt ├── semanticpy ├── __init__.py ├── matrix_formatter.py ├── parser.py ├── porter_stemmer.py ├── transform │ ├── LDA.py │ ├── __init__.py │ ├── lsa.py │ ├── tfidf.py │ └── transform.py └── vector_space.py ├── tests ├── integration_tests │ └── test_semantic_py.py └── unit_tests │ ├── __init__.py │ ├── parser_test.py │ ├── transform │ ├── __init__.py │ ├── lda_test.py │ ├── lsa_test.py │ └── tfidf_test.py │ └── vector_space_test.py └── vendor ├── __init__.py └── onlineldavb ├── COPYING ├── __init__.py ├── dictnostops.txt ├── onlineldavb.py ├── onlinewikipedia.py ├── printtopics.py ├── readme.txt └── wikirandom.py /.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | .idea 3 | .*~ 4 | -------------------------------------------------------------------------------- /.noserc: -------------------------------------------------------------------------------- 1 | [nosetests] 2 | verbosity=3 3 | with-doctest=1 4 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "2.7" 4 | - "3.2" 5 | install: pip install -r requirement.txt --use-mirrors 6 | script: nosetests -------------------------------------------------------------------------------- /MIT-LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/josephwilk/semanticpy/60af3f190fd44e5c76717c3a126cdc9201624cb5/MIT-LICENSE -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | test: 2 | nosetests tests -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # SemanticPy 2 | 3 | A collection of projects in python looking at semantics. Mostly orientated around search. 4 | 5 | ## Example 6 | 7 | ```python 8 | from semanticpy.vector_space import VectorSpace 9 | 10 | vector_space = VectorSpace(["The cat in the hat disabled", "A cat is a fine pet ponies.", "Dogs and cats make good pets.","I haven't got a hat."])) 11 | 12 | #Search for cat 13 | print vector_space.search(["cat"]) 14 | 15 | #Show score for relatedness against document 0 16 | print vector_space.related(0) 17 | ``` 18 | 19 | ## Supported 20 | 21 | * Vector space search - [http://blog.josephwilk.net/projects/building-a-vector-space-search-engine-in-python.html](http://blog.josephwilk.net/projects/building-a-vector-space-search-engine-in-python.html) 22 | * Latent semantic analysis - [http://blog.josephwilk.net/projects/latent-semantic-analysis-in-python.html](http://blog.josephwilk.net/projects/latent-semantic-analysis-in-python.html) 23 | 24 | 25 | ## Dependencies 26 | 27 | * Porter Stemmer - [http://tartarus.org/~martin/PorterStemmer/python.txt](http://tartarus.org/~martin/PorterStemmer/python.txt) 28 | * English stop list - [ftp://ftp.cs.cornell.edu/pub/smart/english.stop](ftp://ftp.cs.cornell.edu/pub/smart/english.stop) 29 | * Scipy - [http://www.scipy.org/](http://www.scipy.org) 30 | 31 | #License 32 | (The MIT License) 33 | 34 | Copyright (c) 2008-2013 Joseph Wilk 35 | 36 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 37 | 38 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 39 | 40 | THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 41 | -------------------------------------------------------------------------------- /data/english.stop: -------------------------------------------------------------------------------- 1 | a 2 | a's 3 | able 4 | about 5 | above 6 | according 7 | accordingly 8 | across 9 | actually 10 | after 11 | afterwards 12 | again 13 | against 14 | ain't 15 | all 16 | allow 17 | allows 18 | almost 19 | alone 20 | along 21 | already 22 | also 23 | although 24 | always 25 | am 26 | among 27 | amongst 28 | an 29 | and 30 | another 31 | any 32 | anybody 33 | anyhow 34 | anyone 35 | anything 36 | anyway 37 | anyways 38 | anywhere 39 | apart 40 | appear 41 | appreciate 42 | appropriate 43 | are 44 | aren't 45 | around 46 | as 47 | aside 48 | ask 49 | asking 50 | associated 51 | at 52 | available 53 | away 54 | awfully 55 | b 56 | be 57 | became 58 | because 59 | become 60 | becomes 61 | becoming 62 | been 63 | before 64 | beforehand 65 | behind 66 | being 67 | believe 68 | below 69 | beside 70 | besides 71 | best 72 | better 73 | between 74 | beyond 75 | both 76 | brief 77 | but 78 | by 79 | c 80 | c'mon 81 | c's 82 | came 83 | can 84 | can't 85 | cannot 86 | cant 87 | cause 88 | causes 89 | certain 90 | certainly 91 | changes 92 | clearly 93 | co 94 | com 95 | come 96 | comes 97 | concerning 98 | consequently 99 | consider 100 | considering 101 | contain 102 | containing 103 | contains 104 | corresponding 105 | could 106 | couldn't 107 | course 108 | currently 109 | d 110 | definitely 111 | described 112 | despite 113 | did 114 | didn't 115 | different 116 | do 117 | does 118 | doesn't 119 | doing 120 | don't 121 | done 122 | down 123 | downwards 124 | during 125 | e 126 | each 127 | edu 128 | eg 129 | eight 130 | either 131 | else 132 | elsewhere 133 | enough 134 | entirely 135 | especially 136 | et 137 | etc 138 | even 139 | ever 140 | every 141 | everybody 142 | everyone 143 | everything 144 | everywhere 145 | ex 146 | exactly 147 | example 148 | except 149 | f 150 | far 151 | few 152 | fifth 153 | first 154 | five 155 | followed 156 | following 157 | follows 158 | for 159 | former 160 | formerly 161 | forth 162 | four 163 | from 164 | further 165 | furthermore 166 | g 167 | get 168 | gets 169 | getting 170 | given 171 | gives 172 | go 173 | goes 174 | going 175 | gone 176 | got 177 | gotten 178 | greetings 179 | h 180 | had 181 | hadn't 182 | happens 183 | hardly 184 | has 185 | hasn't 186 | have 187 | haven't 188 | having 189 | he 190 | he's 191 | hello 192 | help 193 | hence 194 | her 195 | here 196 | here's 197 | hereafter 198 | hereby 199 | herein 200 | hereupon 201 | hers 202 | herself 203 | hi 204 | him 205 | himself 206 | his 207 | hither 208 | hopefully 209 | how 210 | howbeit 211 | however 212 | i 213 | i'd 214 | i'll 215 | i'm 216 | i've 217 | ie 218 | if 219 | ignored 220 | immediate 221 | in 222 | inasmuch 223 | inc 224 | indeed 225 | indicate 226 | indicated 227 | indicates 228 | inner 229 | insofar 230 | instead 231 | into 232 | inward 233 | is 234 | isn't 235 | it 236 | it'd 237 | it'll 238 | it's 239 | its 240 | itself 241 | j 242 | just 243 | k 244 | keep 245 | keeps 246 | kept 247 | know 248 | knows 249 | known 250 | l 251 | last 252 | lately 253 | later 254 | latter 255 | latterly 256 | least 257 | less 258 | lest 259 | let 260 | let's 261 | like 262 | liked 263 | likely 264 | little 265 | look 266 | looking 267 | looks 268 | ltd 269 | m 270 | mainly 271 | many 272 | may 273 | maybe 274 | me 275 | mean 276 | meanwhile 277 | merely 278 | might 279 | more 280 | moreover 281 | most 282 | mostly 283 | much 284 | must 285 | my 286 | myself 287 | n 288 | name 289 | namely 290 | nd 291 | near 292 | nearly 293 | necessary 294 | need 295 | needs 296 | neither 297 | never 298 | nevertheless 299 | new 300 | next 301 | nine 302 | no 303 | nobody 304 | non 305 | none 306 | noone 307 | nor 308 | normally 309 | not 310 | nothing 311 | novel 312 | now 313 | nowhere 314 | o 315 | obviously 316 | of 317 | off 318 | often 319 | oh 320 | ok 321 | okay 322 | old 323 | on 324 | once 325 | one 326 | ones 327 | only 328 | onto 329 | or 330 | other 331 | others 332 | otherwise 333 | ought 334 | our 335 | ours 336 | ourselves 337 | out 338 | outside 339 | over 340 | overall 341 | own 342 | p 343 | particular 344 | particularly 345 | per 346 | perhaps 347 | placed 348 | please 349 | plus 350 | possible 351 | presumably 352 | probably 353 | provides 354 | q 355 | que 356 | quite 357 | qv 358 | r 359 | rather 360 | rd 361 | re 362 | really 363 | reasonably 364 | regarding 365 | regardless 366 | regards 367 | relatively 368 | respectively 369 | right 370 | s 371 | said 372 | same 373 | saw 374 | say 375 | saying 376 | says 377 | second 378 | secondly 379 | see 380 | seeing 381 | seem 382 | seemed 383 | seeming 384 | seems 385 | seen 386 | self 387 | selves 388 | sensible 389 | sent 390 | serious 391 | seriously 392 | seven 393 | several 394 | shall 395 | she 396 | should 397 | shouldn't 398 | since 399 | six 400 | so 401 | some 402 | somebody 403 | somehow 404 | someone 405 | something 406 | sometime 407 | sometimes 408 | somewhat 409 | somewhere 410 | soon 411 | sorry 412 | specified 413 | specify 414 | specifying 415 | still 416 | sub 417 | such 418 | sup 419 | sure 420 | t 421 | t's 422 | take 423 | taken 424 | tell 425 | tends 426 | th 427 | than 428 | thank 429 | thanks 430 | thanx 431 | that 432 | that's 433 | thats 434 | the 435 | their 436 | theirs 437 | them 438 | themselves 439 | then 440 | thence 441 | there 442 | there's 443 | thereafter 444 | thereby 445 | therefore 446 | therein 447 | theres 448 | thereupon 449 | these 450 | they 451 | they'd 452 | they'll 453 | they're 454 | they've 455 | think 456 | third 457 | this 458 | thorough 459 | thoroughly 460 | those 461 | though 462 | three 463 | through 464 | throughout 465 | thru 466 | thus 467 | to 468 | together 469 | too 470 | took 471 | toward 472 | towards 473 | tried 474 | tries 475 | truly 476 | try 477 | trying 478 | twice 479 | two 480 | u 481 | un 482 | under 483 | unfortunately 484 | unless 485 | unlikely 486 | until 487 | unto 488 | up 489 | upon 490 | us 491 | use 492 | used 493 | useful 494 | uses 495 | using 496 | usually 497 | uucp 498 | v 499 | value 500 | various 501 | very 502 | via 503 | viz 504 | vs 505 | w 506 | want 507 | wants 508 | was 509 | wasn't 510 | way 511 | we 512 | we'd 513 | we'll 514 | we're 515 | we've 516 | welcome 517 | well 518 | went 519 | were 520 | weren't 521 | what 522 | what's 523 | whatever 524 | when 525 | whence 526 | whenever 527 | where 528 | where's 529 | whereafter 530 | whereas 531 | whereby 532 | wherein 533 | whereupon 534 | wherever 535 | whether 536 | which 537 | while 538 | whither 539 | who 540 | who's 541 | whoever 542 | whole 543 | whom 544 | whose 545 | why 546 | will 547 | willing 548 | wish 549 | with 550 | within 551 | without 552 | won't 553 | wonder 554 | would 555 | would 556 | wouldn't 557 | x 558 | y 559 | yes 560 | yet 561 | you 562 | you'd 563 | you'll 564 | you're 565 | you've 566 | your 567 | yours 568 | yourself 569 | yourselves 570 | z 571 | zero 572 | -------------------------------------------------------------------------------- /requirement.txt: -------------------------------------------------------------------------------- 1 | numpy==1.6 2 | scipy==0.10.1 -------------------------------------------------------------------------------- /semanticpy/__init__.py: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /semanticpy/matrix_formatter.py: -------------------------------------------------------------------------------- 1 | class MatrixFormatter: 2 | 3 | def __init__(self, matrix): 4 | self.matrix = matrix 5 | 6 | def pretty_print(self): 7 | """ Make the matrix look pretty """ 8 | out = "" 9 | 10 | rows,cols = self.matrix.shape 11 | 12 | for row in xrange(0,rows): 13 | out += "[" 14 | 15 | for col in xrange(0,cols): 16 | out += "%+0.2f "%self.matrix[row][col] 17 | out += "]\n" 18 | 19 | return out -------------------------------------------------------------------------------- /semanticpy/parser.py: -------------------------------------------------------------------------------- 1 | import os 2 | from porter_stemmer import PorterStemmer 3 | import os 4 | 5 | class Parser: 6 | STOP_WORDS_FILE = '%s/../data/english.stop' % os.path.dirname(os.path.realpath(__file__)) 7 | 8 | stemmer = None 9 | stopwords = [] 10 | 11 | def __init__(self, stopwords_io_stream = None): 12 | self.stemmer = PorterStemmer() 13 | 14 | if(not stopwords_io_stream): 15 | stopwords_io_stream = open(Parser.STOP_WORDS_FILE, 'r') 16 | 17 | self.stopwords = stopwords_io_stream.read().split() 18 | 19 | def tokenise_and_remove_stop_words(self, document_list): 20 | if not document_list: 21 | return [] 22 | 23 | vocabulary_string = " ".join(document_list) 24 | 25 | tokenised_vocabulary_list = self._tokenise(vocabulary_string) 26 | clean_word_list = self._remove_stop_words(tokenised_vocabulary_list) 27 | return clean_word_list 28 | 29 | def _remove_stop_words(self, list): 30 | """ Remove common words which have no search value """ 31 | return [word for word in list if word not in self.stopwords ] 32 | 33 | 34 | def _tokenise(self, string): 35 | """ break string up into tokens and stem words """ 36 | string = self._clean(string) 37 | words = string.split(" ") 38 | 39 | return [self.stemmer.stem(word, 0, len(word)-1) for word in words] 40 | 41 | def _clean(self, string): 42 | """ remove any nasty grammar tokens from string """ 43 | string = string.replace(".","") 44 | string = string.replace("\s+"," ") 45 | string = string.lower() 46 | return string 47 | -------------------------------------------------------------------------------- /semanticpy/porter_stemmer.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | """Porter Stemming Algorithm 4 | This is the Porter stemming algorithm, ported to Python from the 5 | version coded up in ANSI C by the author. It may be be regarded 6 | as canonical, in that it follows the algorithm presented in 7 | 8 | Porter, 1980, An algorithm for suffix stripping, Program, Vol. 14, 9 | no. 3, pp 130-137, 10 | 11 | only differing from it at the points maked --DEPARTURE-- below. 12 | 13 | See also http://www.tartarus.org/~martin/PorterStemmer 14 | 15 | The algorithm as described in the paper could be exactly replicated 16 | by adjusting the points of DEPARTURE, but this is barely necessary, 17 | because (a) the points of DEPARTURE are definitely improvements, and 18 | (b) no encoding of the Porter stemmer I have seen is anything like 19 | as exact as this version, even with the points of DEPARTURE! 20 | 21 | Vivake Gupta (v@nano.com) 22 | 23 | Release 1: January 2001 24 | 25 | Further adjustments by Santiago Bruno (bananabruno@gmail.com) 26 | to allow word input not restricted to one word per line, leading 27 | to: 28 | 29 | release 2: July 2008 30 | """ 31 | 32 | import sys 33 | 34 | class PorterStemmer: 35 | 36 | def __init__(self): 37 | """The main part of the stemming algorithm starts here. 38 | b is a buffer holding a word to be stemmed. The letters are in b[k0], 39 | b[k0+1] ... ending at b[k]. In fact k0 = 0 in this demo program. k is 40 | readjusted downwards as the stemming progresses. Zero termination is 41 | not in fact used in the algorithm. 42 | 43 | Note that only lower case sequences are stemmed. Forcing to lower case 44 | should be done before stem(...) is called. 45 | """ 46 | 47 | self.b = "" # buffer for word to be stemmed 48 | self.k = 0 49 | self.k0 = 0 50 | self.j = 0 # j is a general offset into the string 51 | 52 | def cons(self, i): 53 | """cons(i) is TRUE <=> b[i] is a consonant.""" 54 | if self.b[i] == 'a' or self.b[i] == 'e' or self.b[i] == 'i' or self.b[i] == 'o' or self.b[i] == 'u': 55 | return 0 56 | if self.b[i] == 'y': 57 | if i == self.k0: 58 | return 1 59 | else: 60 | return (not self.cons(i - 1)) 61 | return 1 62 | 63 | def m(self): 64 | """m() measures the number of consonant sequences between k0 and j. 65 | if c is a consonant sequence and v a vowel sequence, and <..> 66 | indicates arbitrary presence, 67 | 68 | gives 0 69 | vc gives 1 70 | vcvc gives 2 71 | vcvcvc gives 3 72 | .... 73 | """ 74 | n = 0 75 | i = self.k0 76 | while 1: 77 | if i > self.j: 78 | return n 79 | if not self.cons(i): 80 | break 81 | i = i + 1 82 | i = i + 1 83 | while 1: 84 | while 1: 85 | if i > self.j: 86 | return n 87 | if self.cons(i): 88 | break 89 | i = i + 1 90 | i = i + 1 91 | n = n + 1 92 | while 1: 93 | if i > self.j: 94 | return n 95 | if not self.cons(i): 96 | break 97 | i = i + 1 98 | i = i + 1 99 | 100 | def vowelinstem(self): 101 | """vowelinstem() is TRUE <=> k0,...j contains a vowel""" 102 | for i in range(self.k0, self.j + 1): 103 | if not self.cons(i): 104 | return 1 105 | return 0 106 | 107 | def doublec(self, j): 108 | """doublec(j) is TRUE <=> j,(j-1) contain a double consonant.""" 109 | if j < (self.k0 + 1): 110 | return 0 111 | if (self.b[j] != self.b[j-1]): 112 | return 0 113 | return self.cons(j) 114 | 115 | def cvc(self, i): 116 | """cvc(i) is TRUE <=> i-2,i-1,i has the form consonant - vowel - consonant 117 | and also if the second c is not w,x or y. this is used when trying to 118 | restore an e at the end of a short e.g. 119 | 120 | cav(e), lov(e), hop(e), crim(e), but 121 | snow, box, tray. 122 | """ 123 | if i < (self.k0 + 2) or not self.cons(i) or self.cons(i-1) or not self.cons(i-2): 124 | return 0 125 | ch = self.b[i] 126 | if ch == 'w' or ch == 'x' or ch == 'y': 127 | return 0 128 | return 1 129 | 130 | def ends(self, s): 131 | """ends(s) is TRUE <=> k0,...k ends with the string s.""" 132 | length = len(s) 133 | if s[length - 1] != self.b[self.k]: # tiny speed-up 134 | return 0 135 | if length > (self.k - self.k0 + 1): 136 | return 0 137 | if self.b[self.k-length+1:self.k+1] != s: 138 | return 0 139 | self.j = self.k - length 140 | return 1 141 | 142 | def setto(self, s): 143 | """setto(s) sets (j+1),...k to the characters in the string s, readjusting k.""" 144 | length = len(s) 145 | self.b = self.b[:self.j+1] + s + self.b[self.j+length+1:] 146 | self.k = self.j + length 147 | 148 | def r(self, s): 149 | """r(s) is used further down.""" 150 | if self.m() > 0: 151 | self.setto(s) 152 | 153 | def step1ab(self): 154 | """step1ab() gets rid of plurals and -ed or -ing. e.g. 155 | 156 | caresses -> caress 157 | ponies -> poni 158 | ties -> ti 159 | caress -> caress 160 | cats -> cat 161 | 162 | feed -> feed 163 | agreed -> agree 164 | disabled -> disable 165 | 166 | matting -> mat 167 | mating -> mate 168 | meeting -> meet 169 | milling -> mill 170 | messing -> mess 171 | 172 | meetings -> meet 173 | """ 174 | if self.b[self.k] == 's': 175 | if self.ends("sses"): 176 | self.k = self.k - 2 177 | elif self.ends("ies"): 178 | self.setto("i") 179 | elif self.b[self.k - 1] != 's': 180 | self.k = self.k - 1 181 | if self.ends("eed"): 182 | if self.m() > 0: 183 | self.k = self.k - 1 184 | elif (self.ends("ed") or self.ends("ing")) and self.vowelinstem(): 185 | self.k = self.j 186 | if self.ends("at"): self.setto("ate") 187 | elif self.ends("bl"): self.setto("ble") 188 | elif self.ends("iz"): self.setto("ize") 189 | elif self.doublec(self.k): 190 | self.k = self.k - 1 191 | ch = self.b[self.k] 192 | if ch == 'l' or ch == 's' or ch == 'z': 193 | self.k = self.k + 1 194 | elif (self.m() == 1 and self.cvc(self.k)): 195 | self.setto("e") 196 | 197 | def step1c(self): 198 | """step1c() turns terminal y to i when there is another vowel in the stem.""" 199 | if (self.ends("y") and self.vowelinstem()): 200 | self.b = self.b[:self.k] + 'i' + self.b[self.k+1:] 201 | 202 | def step2(self): 203 | """step2() maps double suffices to single ones. 204 | so -ization ( = -ize plus -ation) maps to -ize etc. note that the 205 | string before the suffix must give m() > 0. 206 | """ 207 | if self.b[self.k - 1] == 'a': 208 | if self.ends("ational"): self.r("ate") 209 | elif self.ends("tional"): self.r("tion") 210 | elif self.b[self.k - 1] == 'c': 211 | if self.ends("enci"): self.r("ence") 212 | elif self.ends("anci"): self.r("ance") 213 | elif self.b[self.k - 1] == 'e': 214 | if self.ends("izer"): self.r("ize") 215 | elif self.b[self.k - 1] == 'l': 216 | if self.ends("bli"): self.r("ble") # --DEPARTURE-- 217 | # To match the published algorithm, replace this phrase with 218 | # if self.ends("abli"): self.r("able") 219 | elif self.ends("alli"): self.r("al") 220 | elif self.ends("entli"): self.r("ent") 221 | elif self.ends("eli"): self.r("e") 222 | elif self.ends("ousli"): self.r("ous") 223 | elif self.b[self.k - 1] == 'o': 224 | if self.ends("ization"): self.r("ize") 225 | elif self.ends("ation"): self.r("ate") 226 | elif self.ends("ator"): self.r("ate") 227 | elif self.b[self.k - 1] == 's': 228 | if self.ends("alism"): self.r("al") 229 | elif self.ends("iveness"): self.r("ive") 230 | elif self.ends("fulness"): self.r("ful") 231 | elif self.ends("ousness"): self.r("ous") 232 | elif self.b[self.k - 1] == 't': 233 | if self.ends("aliti"): self.r("al") 234 | elif self.ends("iviti"): self.r("ive") 235 | elif self.ends("biliti"): self.r("ble") 236 | elif self.b[self.k - 1] == 'g': # --DEPARTURE-- 237 | if self.ends("logi"): self.r("log") 238 | # To match the published algorithm, delete this phrase 239 | 240 | def step3(self): 241 | """step3() dels with -ic-, -full, -ness etc. similar strategy to step2.""" 242 | if self.b[self.k] == 'e': 243 | if self.ends("icate"): self.r("ic") 244 | elif self.ends("ative"): self.r("") 245 | elif self.ends("alize"): self.r("al") 246 | elif self.b[self.k] == 'i': 247 | if self.ends("iciti"): self.r("ic") 248 | elif self.b[self.k] == 'l': 249 | if self.ends("ical"): self.r("ic") 250 | elif self.ends("ful"): self.r("") 251 | elif self.b[self.k] == 's': 252 | if self.ends("ness"): self.r("") 253 | 254 | def step4(self): 255 | """step4() takes off -ant, -ence etc., in context vcvc.""" 256 | if self.b[self.k - 1] == 'a': 257 | if self.ends("al"): pass 258 | else: return 259 | elif self.b[self.k - 1] == 'c': 260 | if self.ends("ance"): pass 261 | elif self.ends("ence"): pass 262 | else: return 263 | elif self.b[self.k - 1] == 'e': 264 | if self.ends("er"): pass 265 | else: return 266 | elif self.b[self.k - 1] == 'i': 267 | if self.ends("ic"): pass 268 | else: return 269 | elif self.b[self.k - 1] == 'l': 270 | if self.ends("able"): pass 271 | elif self.ends("ible"): pass 272 | else: return 273 | elif self.b[self.k - 1] == 'n': 274 | if self.ends("ant"): pass 275 | elif self.ends("ement"): pass 276 | elif self.ends("ment"): pass 277 | elif self.ends("ent"): pass 278 | else: return 279 | elif self.b[self.k - 1] == 'o': 280 | if self.ends("ion") and (self.b[self.j] == 's' or self.b[self.j] == 't'): pass 281 | elif self.ends("ou"): pass 282 | # takes care of -ous 283 | else: return 284 | elif self.b[self.k - 1] == 's': 285 | if self.ends("ism"): pass 286 | else: return 287 | elif self.b[self.k - 1] == 't': 288 | if self.ends("ate"): pass 289 | elif self.ends("iti"): pass 290 | else: return 291 | elif self.b[self.k - 1] == 'u': 292 | if self.ends("ous"): pass 293 | else: return 294 | elif self.b[self.k - 1] == 'v': 295 | if self.ends("ive"): pass 296 | else: return 297 | elif self.b[self.k - 1] == 'z': 298 | if self.ends("ize"): pass 299 | else: return 300 | else: 301 | return 302 | if self.m() > 1: 303 | self.k = self.j 304 | 305 | def step5(self): 306 | """step5() removes a final -e if m() > 1, and changes -ll to -l if 307 | m() > 1. 308 | """ 309 | self.j = self.k 310 | if self.b[self.k] == 'e': 311 | a = self.m() 312 | if a > 1 or (a == 1 and not self.cvc(self.k-1)): 313 | self.k = self.k - 1 314 | if self.b[self.k] == 'l' and self.doublec(self.k) and self.m() > 1: 315 | self.k = self.k -1 316 | 317 | def stem(self, p, i, j): 318 | """In stem(p,i,j), p is a char pointer, and the string to be stemmed 319 | is from p[i] to p[j] inclusive. Typically i is zero and j is the 320 | offset to the last character of a string, (p[j+1] == '\0'). The 321 | stemmer adjusts the characters p[i] ... p[j] and returns the new 322 | end-point of the string, k. Stemming never increases word length, so 323 | i <= k <= j. To turn the stemmer into a module, declare 'stem' as 324 | extern, and delete the remainder of this file. 325 | """ 326 | # copy the parameters into statics 327 | self.b = p 328 | self.k = j 329 | self.k0 = i 330 | if self.k <= self.k0 + 1: 331 | return self.b # --DEPARTURE-- 332 | 333 | # With this line, strings of length 1 or 2 don't go through the 334 | # stemming process, although no mention is made of this in the 335 | # published algorithm. Remove the line to match the published 336 | # algorithm. 337 | 338 | self.step1ab() 339 | self.step1c() 340 | self.step2() 341 | self.step3() 342 | self.step4() 343 | self.step5() 344 | return self.b[self.k0:self.k+1] -------------------------------------------------------------------------------- /semanticpy/transform/LDA.py: -------------------------------------------------------------------------------- 1 | from semanticpy.transform.transform import Transform 2 | from vendor.onlineldavb.onlineldavb import OnlineLDA 3 | 4 | class LDA(Transform): 5 | NUMBER_OF_TOPICS = 100 6 | 7 | def __init__(self, matrix): 8 | Transform.__init__(self, matrix) 9 | self.document_total = len(self.matrix) 10 | 11 | def transform(self): 12 | lda = OnlineLDA(vocab, NUMBER_OF_TOPICS, self.document_total, 1./NUMBER_OF_TOPICS, 1./NUMBER_OF_TOPICS, 1024., 0.7) 13 | 14 | -------------------------------------------------------------------------------- /semanticpy/transform/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'josephwilk' 2 | -------------------------------------------------------------------------------- /semanticpy/transform/lsa.py: -------------------------------------------------------------------------------- 1 | from scipy import linalg,dot 2 | 3 | from transform import Transform 4 | 5 | class LSA(Transform): 6 | """ Latent Semantic Analysis(LSA). 7 | Apply transform to a document-term matrix to bring out latent relationships. 8 | These are found by analysing relationships between the documents and the terms they 9 | contain. 10 | """ 11 | 12 | def transform(self, dimensions=1): 13 | """ Calculate SVD of objects matrix: U . SIGMA . VT = MATRIX 14 | Reduce the dimension of sigma by specified factor producing sigma'. 15 | Then dot product the matrices: U . SIGMA' . VT = MATRIX' 16 | """ 17 | rows,cols = self.matrix.shape 18 | 19 | if dimensions <= rows: #Its a valid reduction 20 | 21 | #Sigma comes out as a list rather than a matrix 22 | u,sigma,vt = linalg.svd(self.matrix) 23 | 24 | #Dimension reduction, build SIGMA' 25 | for index in xrange(rows - dimensions, rows): 26 | sigma[index] = 0 27 | 28 | #Reconstruct MATRIX' 29 | transformed_matrix = dot(dot(u, linalg.diagsvd(sigma, len(self.matrix), len(vt))) ,vt) 30 | 31 | return transformed_matrix 32 | 33 | else: 34 | print "dimension reduction cannot be greater than %s" % rows -------------------------------------------------------------------------------- /semanticpy/transform/tfidf.py: -------------------------------------------------------------------------------- 1 | from math import * 2 | from transform import Transform 3 | 4 | class TFIDF(Transform): 5 | 6 | def __init__(self, matrix): 7 | Transform.__init__(self, matrix) 8 | self.document_total = len(self.matrix) 9 | 10 | 11 | def transform(self): 12 | """ Apply TermFrequency(tf)*inverseDocumentFrequency(idf) for each matrix element. 13 | This evaluates how important a word is to a document in a corpus 14 | 15 | With a document-term matrix: matrix[x][y] 16 | tf[x][y] = frequency of term y in document x / frequency of all terms in document x 17 | idf[x][y] = log( abs(total number of documents in corpus) / abs(number of documents with term y) ) 18 | Note: This is not the only way to calculate tf*idf 19 | """ 20 | 21 | rows,cols = self.matrix.shape 22 | transformed_matrix = self.matrix.copy() 23 | 24 | for row in xrange(0, rows): #For each document 25 | 26 | word_total = reduce(lambda x, y: x+y, self.matrix[row] ) 27 | word_total = float(word_total) 28 | 29 | for col in xrange(0, cols): #For each term 30 | transformed_matrix[row,col] = float(transformed_matrix[row,col]) 31 | 32 | if transformed_matrix[row][col] != 0: 33 | transformed_matrix[row,col] = self._tf_idf(row, col, word_total) 34 | 35 | return transformed_matrix 36 | 37 | 38 | def _tf_idf(self, row, col, word_total): 39 | term_frequency = self.matrix[row][col] / float(word_total) 40 | inverse_document_frequency = log(abs(self.document_total / float(self._get_term_document_occurences(col)))) 41 | return term_frequency * inverse_document_frequency 42 | 43 | 44 | def _get_term_document_occurences(self, col): 45 | """ Find how many documents a term occurs in""" 46 | 47 | term_document_occurrences = 0 48 | 49 | rows, cols = self.matrix.shape 50 | 51 | for n in xrange(0,rows): 52 | if self.matrix[n][col] > 0: #Term appears in document 53 | term_document_occurrences +=1 54 | return term_document_occurrences 55 | -------------------------------------------------------------------------------- /semanticpy/transform/transform.py: -------------------------------------------------------------------------------- 1 | from semanticpy.matrix_formatter import MatrixFormatter 2 | from scipy import array 3 | 4 | class Transform: 5 | def __init__(self, matrix): 6 | self.matrix = array(matrix, dtype=float) 7 | 8 | def __repr__(self): 9 | MatrixFormatter(self.matrix).pretty_print 10 | -------------------------------------------------------------------------------- /semanticpy/vector_space.py: -------------------------------------------------------------------------------- 1 | from semanticpy.parser import Parser 2 | from semanticpy.transform.lsa import LSA 3 | from semanticpy.transform.tfidf import TFIDF 4 | 5 | import sys 6 | 7 | 8 | try: 9 | from numpy import dot 10 | from numpy.linalg import norm 11 | except: 12 | print "Error: Requires numpy from http://www.scipy.org/. Have you installed scipy?" 13 | sys.exit() 14 | 15 | class VectorSpace: 16 | """ A algebraic model for representing text documents as vectors of identifiers. 17 | A document is represented as a vector. Each dimension of the vector corresponds to a 18 | separate term. If a term occurs in the document, then the value in the vector is non-zero. 19 | """ 20 | 21 | collection_of_document_term_vectors = [] 22 | vector_index_to_keyword_mapping = [] 23 | 24 | parser = None 25 | 26 | def __init__(self, documents = [], transforms = [TFIDF, LSA]): 27 | self.collection_of_document_term_vectors = [] 28 | self.parser = Parser() 29 | if len(documents) > 0: 30 | self._build(documents, transforms) 31 | 32 | 33 | def related(self, document_id): 34 | """ find documents that are related to the document indexed by passed Id within the document Vectors""" 35 | ratings = [self._cosine(self.collection_of_document_term_vectors[document_id], document_vector) for document_vector in self.collection_of_document_term_vectors] 36 | ratings.sort(reverse = True) 37 | return ratings 38 | 39 | 40 | def search(self, searchList): 41 | """ search for documents that match based on a list of terms """ 42 | queryVector = self._build_query_vector(searchList) 43 | 44 | ratings = [self._cosine(queryVector, documentVector) for documentVector in self.collection_of_document_term_vectors] 45 | ratings.sort(reverse=True) 46 | return ratings 47 | 48 | 49 | def _build(self, documents, transforms): 50 | """ Create the vector space for the passed document strings """ 51 | self.vector_index_to_keyword_mapping = self._get_vector_keyword_index(documents) 52 | 53 | matrix = [self._make_vector(document) for document in documents] 54 | matrix = reduce(lambda matrix,transform: transform(matrix).transform(), transforms, matrix) 55 | self.collection_of_document_term_vectors = matrix 56 | 57 | def _get_vector_keyword_index(self, document_list): 58 | """ create the keyword associated to the position of the elements within the document vectors """ 59 | vocabulary_list = self.parser.tokenise_and_remove_stop_words(document_list) 60 | unique_vocabulary_list = self._remove_duplicates(vocabulary_list) 61 | 62 | vector_index={} 63 | offset=0 64 | #Associate a position with the keywords which maps to the dimension on the vector used to represent this word 65 | for word in unique_vocabulary_list: 66 | vector_index[word] = offset 67 | offset += 1 68 | return vector_index #(keyword:position) 69 | 70 | 71 | def _make_vector(self, word_string): 72 | """ @pre: unique(vectorIndex) """ 73 | 74 | vector = [0] * len(self.vector_index_to_keyword_mapping) 75 | 76 | word_list = self.parser.tokenise_and_remove_stop_words(word_string.split(" ")) 77 | 78 | for word in word_list: 79 | vector[self.vector_index_to_keyword_mapping[word]] += 1; #Use simple Term Count Model 80 | return vector 81 | 82 | 83 | def _build_query_vector(self, term_list): 84 | """ convert query string into a term vector """ 85 | query = self._make_vector(" ".join(term_list)) 86 | return query 87 | 88 | 89 | def _remove_duplicates(self, list): 90 | """ remove duplicates from a list """ 91 | return set((item for item in list)) 92 | 93 | 94 | def _cosine(self, vector1, vector2): 95 | """ related documents j and q are in the concept space by comparing the vectors : 96 | cosine = ( V1 * V2 ) / ||V1|| x ||V2|| """ 97 | return float(dot(vector1,vector2) / (norm(vector1) * norm(vector2))) 98 | -------------------------------------------------------------------------------- /tests/integration_tests/test_semantic_py.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | from semanticpy.vector_space import VectorSpace 3 | from nose.tools import * 4 | 5 | 6 | class TestSemanticPy(TestCase): 7 | def setUp(self): 8 | self.documents = ["The cat in the hat disabled", "A cat is a fine pet ponies.", "Dogs and cats make good pets.","I haven't got a hat."] 9 | 10 | def it_should_search_test(self): 11 | vectorSpace = VectorSpace(self.documents) 12 | 13 | eq_(vectorSpace.search(["cat"]), [0.14487566959813258, 0.1223402602604157, 0.07795622058966725, 0.05586504042763477]) 14 | 15 | def it_should_find_return_similarity_rating_test(self): 16 | vectorSpace = VectorSpace(self.documents) 17 | 18 | eq_(vectorSpace.related(0), [1.0, 0.9922455760198575, 0.08122814162371816, 0.0762173599906487]) -------------------------------------------------------------------------------- /tests/unit_tests/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'josephwilk' 2 | -------------------------------------------------------------------------------- /tests/unit_tests/parser_test.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | from semanticpy.parser import Parser 3 | from nose.tools import * 4 | 5 | class ParserTest(TestCase): 6 | class FakeStopWords: 7 | def __init__(self, stop_words=''): 8 | self.stop_words = stop_words 9 | 10 | def read(self): 11 | return self.stop_words 12 | 13 | def create_parser_with_stopwords(self, words_string): 14 | return Parser(ParserTest.FakeStopWords(words_string)) 15 | 16 | def create_parser(self): 17 | return Parser(ParserTest.FakeStopWords()) 18 | 19 | def it_should_remove_the_stopwords_test(self): 20 | parser = self.create_parser_with_stopwords('a') 21 | 22 | parsed_words = parser.tokenise_and_remove_stop_words(["a", "sheep"]) 23 | 24 | eq_(parsed_words, ["sheep"]) 25 | 26 | def it_should_stem_words_test(self): 27 | parser = self.create_parser() 28 | 29 | parsed_words = parser.tokenise_and_remove_stop_words(["monkey"]) 30 | 31 | eq_(parsed_words, ["monkei"]) 32 | 33 | def it_should_remove_grammar_test(self): 34 | parser = self.create_parser() 35 | 36 | parsed_words = parser.tokenise_and_remove_stop_words(["sheep..."]) 37 | 38 | eq_(parsed_words, ["sheep"]) 39 | 40 | def it_should_return_an_empty_list__when_words_string_is_empty_test(self): 41 | parser = self.create_parser() 42 | 43 | parsed_words = parser.tokenise_and_remove_stop_words([]) 44 | 45 | eq_(parsed_words, []) -------------------------------------------------------------------------------- /tests/unit_tests/transform/__init__.py: -------------------------------------------------------------------------------- 1 | __author__ = 'josephwilk' 2 | -------------------------------------------------------------------------------- /tests/unit_tests/transform/lda_test.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | from semanticpy.transform.lda import LDA 3 | 4 | class LDATest(TestCase): 5 | def it_should_do_lsa_test(self): 6 | pass -------------------------------------------------------------------------------- /tests/unit_tests/transform/lsa_test.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | from semanticpy.transform.lsa import LSA 3 | from nose.tools import * 4 | import numpy 5 | 6 | class LSATest(TestCase): 7 | """ """ 8 | EPSILON = 4.90815310617e-09 9 | 10 | @classmethod 11 | def same(self, matrix1, matrix2): 12 | difference = matrix1 - matrix2 13 | max = numpy.max(difference) 14 | return (max <= LSATest.EPSILON) 15 | 16 | def it_should_do_lsa_test(self): 17 | matrix = [[0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0], 18 | [0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0], 19 | [1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0], 20 | [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]] 21 | 22 | expected = [[ 0.02284739, 0.06123732, 1.20175485, 0.02284739, 0.02284739, 0.88232986, 0.03838993, 0.03838993, 0.82109254], 23 | [-0.00490259, 0.98685971, -0.04329252, -0.00490259, -0.00490259, 1.02524964, 0.99176229, 0.99176229, 0.03838993], 24 | [ 0.99708227, 0.99217968, -0.02576511, 0.99708227, 0.99708227, 1.01502707, -0.00490259, -0.00490259, 0.02284739], 25 | [-0.0486125 , -0.13029496, 0.57072519, -0.0486125 , -0.0486125 , 0.25036735, -0.08168246, -0.08168246, 0.3806623 ]] 26 | 27 | expected = numpy.array(expected) 28 | lsa = LSA(matrix) 29 | new_matrix = lsa.transform() 30 | 31 | eq_(LSATest.same(new_matrix, expected), True) -------------------------------------------------------------------------------- /tests/unit_tests/transform/tfidf_test.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | from semanticpy.transform.tfidf import TFIDF 3 | from nose.tools import * 4 | import numpy 5 | 6 | class TFIDFTest(TestCase): 7 | """ """ 8 | EPSILON = 4.90815310617e-09 9 | 10 | 11 | @classmethod 12 | def same(self, matrix1, matrix2): 13 | difference = matrix1 - matrix2 14 | max = numpy.max(difference) 15 | return (max <= TFIDFTest.EPSILON) 16 | 17 | 18 | def it_should_do_tfidf_test(self): 19 | matrix = [[0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 1.0], 20 | [0.0, 1.0, 0.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0], 21 | [1.0, 1.0, 0.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0], 22 | [0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]] 23 | 24 | expected = [[0., 0., 0.23104906, 0., 0., 0.09589402, 0., 0., 0.46209812], 25 | [0., 0.1732868, 0., 0., 0., 0.07192052, 0.34657359, 0.34657359, 0. ], 26 | [0.27725887, 0.13862944, 0., 0.27725887, 0.27725887, 0.05753641, 0., 0., 0. ], 27 | [0., 0., 0.69314718, 0., 0., 0., 0., 0., 0. ]] 28 | 29 | expected = numpy.array(expected) 30 | 31 | tfidf = TFIDF(matrix) 32 | new_matrix = tfidf.transform() 33 | 34 | eq_(TFIDFTest.same(new_matrix, expected), True) 35 | -------------------------------------------------------------------------------- /tests/unit_tests/vector_space_test.py: -------------------------------------------------------------------------------- 1 | from unittest import TestCase 2 | from semanticpy.vector_space import VectorSpace 3 | from pprint import pprint 4 | from nose.tools import * 5 | 6 | class VectorSpaceTest(TestCase): 7 | 8 | documents = ["cat", "cat dog","hat"] 9 | 10 | def it_should_search_test(self): 11 | vector_space = VectorSpace(self.documents, transforms = []) 12 | 13 | eq_(vector_space.search(["cat"]), [1.0, 0.7071067811865475, 0.0]) 14 | 15 | def it_should_find_related_test(self): 16 | vector_space = VectorSpace(self.documents) 17 | 18 | eq_(vector_space.related(0), [1.0000000000000002, 0.9999999999999998, 0.0]) -------------------------------------------------------------------------------- /vendor/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/josephwilk/semanticpy/60af3f190fd44e5c76717c3a126cdc9201624cb5/vendor/__init__.py -------------------------------------------------------------------------------- /vendor/onlineldavb/COPYING: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /vendor/onlineldavb/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/josephwilk/semanticpy/60af3f190fd44e5c76717c3a126cdc9201624cb5/vendor/onlineldavb/__init__.py -------------------------------------------------------------------------------- /vendor/onlineldavb/dictnostops.txt: -------------------------------------------------------------------------------- 1 | writings 2 | yellow 3 | four 4 | woods 5 | hanging 6 | marching 7 | looking 8 | rouse 9 | lord 10 | sagde 11 | meadows 12 | sinking 13 | foul 14 | bringing 15 | disturb 16 | uttering 17 | scholar 18 | wooden 19 | wednesday 20 | haben 21 | persisted 22 | succession 23 | specially 24 | nigh 25 | tired 26 | miller 27 | bacon 28 | pulse 29 | elegant 30 | second 31 | valiant 32 | sailed 33 | errors 34 | thunder 35 | cooking 36 | contributed 37 | fingers 38 | increasing 39 | etexts 40 | dort 41 | hero 42 | leaning 43 | herd 44 | reported 45 | china 46 | herr 47 | substance 48 | elaborate 49 | climbed 50 | reports 51 | controversy 52 | ueber 53 | natures 54 | military 55 | criticism 56 | golden 57 | divide 58 | explained 59 | replace 60 | brought 61 | stern 62 | spoke 63 | leurs 64 | music 65 | telegraph 66 | mystic 67 | strike 68 | paperwork 69 | holy 70 | successful 71 | brings 72 | hurt 73 | glass 74 | aux 75 | midst 76 | hold 77 | circumstances 78 | locked 79 | pursue 80 | blade 81 | plunged 82 | mots 83 | leaped 84 | revenues 85 | avaient 86 | misfortunes 87 | owes 88 | unjust 89 | household 90 | artillery 91 | organized 92 | caution 93 | kingdoms 94 | absolute 95 | provincial 96 | hoe 97 | groaned 98 | hon 99 | travel 100 | damage 101 | machine 102 | hot 103 | augen 104 | significance 105 | dignified 106 | beauty 107 | shores 108 | wrong 109 | destined 110 | poboxcom 111 | types 112 | effective 113 | endeavoured 114 | youths 115 | revolt 116 | headquarters 117 | baggage 118 | keeps 119 | democratic 120 | wing 121 | wind 122 | wine 123 | welcomed 124 | dreamed 125 | confederate 126 | vary 127 | peut 128 | tandis 129 | fidelity 130 | wrought 131 | admirably 132 | fit 133 | heretofore 134 | fix 135 | rescued 136 | fig 137 | nobler 138 | wales 139 | hidden 140 | admirable 141 | easier 142 | grievous 143 | corridor 144 | detachment 145 | effects 146 | schools 147 | sixteen 148 | silver 149 | prize 150 | represents 151 | crops 152 | arrow 153 | blushed 154 | preceded 155 | financial 156 | series 157 | allah 158 | commons 159 | fortnight 160 | cathedral 161 | aurait 162 | ring 163 | whip 164 | borne 165 | misfortune 166 | excepting 167 | mason 168 | toute 169 | encourage 170 | millions 171 | foundation 172 | clarence 173 | assured 174 | threatened 175 | fugitive 176 | syn 177 | faculties 178 | expends 179 | crowned 180 | estimate 181 | universally 182 | enormous 183 | ate 184 | att 185 | disturbed 186 | speedy 187 | mademoiselle 188 | wash 189 | service 190 | xii 191 | engagement 192 | needed 193 | master 194 | listed 195 | xiv 196 | gilbert 197 | legs 198 | bitter 199 | listen 200 | wisdom 201 | motionless 202 | positively 203 | peril 204 | showed 205 | coward 206 | tree 207 | nations 208 | project 209 | idle 210 | exclaimed 211 | endure 212 | tres 213 | feeling 214 | este 215 | esta 216 | boston 217 | aprs 218 | notwithstanding 219 | dozen 220 | affairs 221 | wholesome 222 | responsible 223 | eagerly 224 | recommended 225 | causing 226 | absorbed 227 | amusing 228 | doors 229 | shall 230 | object 231 | victoria 232 | doit 233 | swiss 234 | mouth 235 | letter 236 | entry 237 | shalt 238 | grove 239 | professor 240 | camp 241 | spend 242 | nineteenth 243 | scream 244 | incomplete 245 | marvel 246 | saying 247 | insects 248 | meetings 249 | tempted 250 | prit 251 | lessons 252 | orleans 253 | touches 254 | busy 255 | louise 256 | quaint 257 | cousins 258 | mens 259 | bush 260 | bliss 261 | touched 262 | rich 263 | heartily 264 | rice 265 | rpondit 266 | plate 267 | plato 268 | foremost 269 | pocket 270 | altogether 271 | societies 272 | admiral 273 | release 274 | hasten 275 | saul 276 | fait 277 | blew 278 | disaster 279 | fair 280 | guerre 281 | unexpectedly 282 | coleridge 283 | result 284 | fail 285 | fain 286 | resigned 287 | hammer 288 | best 289 | lots 290 | irs 291 | rings 292 | score 293 | scorn 294 | preserve 295 | discipline 296 | extend 297 | nature 298 | rolled 299 | extent 300 | defiance 301 | sancho 302 | debt 303 | pity 304 | accident 305 | country 306 | conclusions 307 | adventures 308 | demanded 309 | welche 310 | planned 311 | logic 312 | genus 313 | adapted 314 | asked 315 | vain 316 | opportunities 317 | gleaming 318 | vais 319 | fra 320 | source 321 | union 322 | slay 323 | fro 324 | twain 325 | startled 326 | privilege 327 | life 328 | crying 329 | eastern 330 | zich 331 | wish 332 | dave 333 | lift 334 | child 335 | worked 336 | doth 337 | erst 338 | chill 339 | commerce 340 | contemplated 341 | employ 342 | viii 343 | skirts 344 | remembering 345 | played 346 | eighteen 347 | pauvre 348 | presque 349 | trusted 350 | damaged 351 | severity 352 | things 353 | demands 354 | rebellion 355 | split 356 | european 357 | exertion 358 | fairly 359 | boiled 360 | tops 361 | conversion 362 | marched 363 | supper 364 | plusieurs 365 | tune 366 | echoed 367 | stillness 368 | bonne 369 | opinions 370 | distribute 371 | sleepy 372 | disguise 373 | tilde 374 | rushing 375 | succeeding 376 | previous 377 | enters 378 | hal 379 | ham 380 | han 381 | sciences 382 | ease 383 | hae 384 | hay 385 | obedient 386 | easy 387 | prison 388 | har 389 | east 390 | hat 391 | elevation 392 | elders 393 | possible 394 | quune 395 | birth 396 | shadow 397 | summons 398 | desire 399 | alice 400 | remind 401 | pavement 402 | steps 403 | right 404 | old 405 | ole 406 | crowd 407 | people 408 | oli 409 | creed 410 | crown 411 | captive 412 | commonplace 413 | creep 414 | enemies 415 | bottom 416 | fox 417 | contributing 418 | foe 419 | individuals 420 | summoned 421 | foi 422 | yoke 423 | losing 424 | memorable 425 | bowing 426 | shaken 427 | instructed 428 | visitors 429 | dollars 430 | citizens 431 | recollect 432 | despair 433 | lacked 434 | slightly 435 | raised 436 | statements 437 | facility 438 | nought 439 | som 440 | son 441 | respectable 442 | beings 443 | despised 444 | avait 445 | support 446 | constantly 447 | tame 448 | avail 449 | humorous 450 | joseph 451 | authorized 452 | greatness 453 | jane 454 | overhead 455 | halls 456 | happy 457 | insurrection 458 | offer 459 | forming 460 | talents 461 | duel 462 | extremity 463 | inside 464 | lays 465 | mighty 466 | adopt 467 | disgrace 468 | proves 469 | exist 470 | melan 471 | females 472 | negotiations 473 | protested 474 | solicitation 475 | floor 476 | crowns 477 | uttered 478 | flood 479 | republic 480 | ambitious 481 | momentary 482 | smell 483 | roll 484 | intend 485 | slaves 486 | asterisk 487 | transported 488 | scale 489 | intent 490 | mre 491 | rolling 492 | fastened 493 | highness 494 | time 495 | push 496 | conferred 497 | decision 498 | faisait 499 | gown 500 | childs 501 | corps 502 | selbst 503 | chair 504 | hole 505 | venice 506 | ver 507 | downloading 508 | choice 509 | gloomy 510 | exact 511 | minute 512 | tear 513 | leave 514 | settle 515 | team 516 | speculation 517 | prevent 518 | spiritual 519 | occurrence 520 | insignificant 521 | sigh 522 | sign 523 | droit 524 | celebrated 525 | current 526 | falling 527 | stait 528 | jury 529 | honour 530 | funeral 531 | lange 532 | understanding 533 | yards 534 | address 535 | passengers 536 | brilliant 537 | studied 538 | cette 539 | commonly 540 | accomplished 541 | studies 542 | love 543 | proportion 544 | prefer 545 | logical 546 | bloody 547 | allait 548 | working 549 | perished 550 | positive 551 | angry 552 | tightly 553 | cherished 554 | opposed 555 | wondering 556 | scope 557 | wicked 558 | afford 559 | apparent 560 | refrain 561 | odious 562 | ignorant 563 | virtue 564 | behalf 565 | valued 566 | originally 567 | pretend 568 | believes 569 | printing 570 | stature 571 | believed 572 | detached 573 | admired 574 | locks 575 | allowed 576 | stole 577 | evidently 578 | ferdinand 579 | winter 580 | divided 581 | sudden 582 | vainly 583 | elephant 584 | undertook 585 | edinburgh 586 | spot 587 | date 588 | revealed 589 | disagreeable 590 | stress 591 | natural 592 | varieties 593 | conscious 594 | yielding 595 | darkened 596 | wolves 597 | pulled 598 | drunken 599 | unsolicited 600 | years 601 | course 602 | experiments 603 | pieds 604 | tendency 605 | tore 606 | solitary 607 | limbs 608 | derive 609 | haughty 610 | jim 611 | troubles 612 | attraction 613 | suspicion 614 | troubled 615 | petition 616 | instantly 617 | quod 618 | nation 619 | records 620 | compelled 621 | arriving 622 | twilight 623 | maintaining 624 | shouted 625 | vaan 626 | establishing 627 | veins 628 | quarter 629 | repaired 630 | square 631 | bursting 632 | receipt 633 | owing 634 | entering 635 | neighbourhood 636 | canvas 637 | abide 638 | seriously 639 | investigation 640 | siege 641 | million 642 | seventh 643 | possibility 644 | quite 645 | complicated 646 | intensely 647 | poems 648 | sanoi 649 | remainder 650 | seventy 651 | training 652 | disguised 653 | modest 654 | aboard 655 | neglect 656 | emotion 657 | saving 658 | spoken 659 | clause 660 | spanish 661 | vote 662 | ons 663 | open 664 | ont 665 | city 666 | wrath 667 | convent 668 | bite 669 | indicate 670 | bits 671 | williams 672 | shawl 673 | proving 674 | ridiculous 675 | representing 676 | rival 677 | folly 678 | coats 679 | future 680 | nie 681 | wandering 682 | damned 683 | prospect 684 | addressing 685 | sah 686 | alles 687 | san 688 | sam 689 | royalties 690 | saa 691 | turned 692 | argument 693 | jewels 694 | sad 695 | say 696 | buried 697 | allen 698 | saw 699 | sat 700 | fashionable 701 | warriors 702 | aside 703 | zoo 704 | note 705 | jefferson 706 | take 707 | wanting 708 | altered 709 | opposite 710 | knew 711 | printed 712 | remarks 713 | knee 714 | inserted 715 | pages 716 | lawn 717 | average 718 | phil 719 | sale 720 | ways 721 | bade 722 | axe 723 | atlantic 724 | salt 725 | trembled 726 | laws 727 | walking 728 | merit 729 | bright 730 | scarce 731 | imagined 732 | hist 733 | serait 734 | slow 735 | cloak 736 | peur 737 | tears 738 | going 739 | equipped 740 | robe 741 | caroline 742 | dispute 743 | guarded 744 | rejoiced 745 | assistant 746 | inspection 747 | monde 748 | awaiting 749 | prime 750 | keenly 751 | artist 752 | borrow 753 | worried 754 | priest 755 | roger 756 | landlord 757 | liable 758 | vision 759 | isabel 760 | impressions 761 | hastened 762 | cheerfully 763 | aroused 764 | rewarded 765 | jumped 766 | sites 767 | affecting 768 | screen 769 | ascribed 770 | gratefully 771 | spare 772 | spark 773 | suppressed 774 | concentrated 775 | mans 776 | residence 777 | thickly 778 | loudly 779 | expression 780 | mann 781 | allowance 782 | autour 783 | besoin 784 | siit 785 | seulement 786 | boat 787 | plantation 788 | stretch 789 | west 790 | breath 791 | almighty 792 | practised 793 | combined 794 | motives 795 | venir 796 | wants 797 | enable 798 | thousand 799 | formed 800 | ceux 801 | observe 802 | nobles 803 | polly 804 | fin 805 | pretence 806 | consulted 807 | canoes 808 | newspaper 809 | situation 810 | endured 811 | ive 812 | canoe 813 | brow 814 | engaged 815 | ascii 816 | fame 817 | binary 818 | expenditures 819 | parliament 820 | perpetually 821 | faculty 822 | sickness 823 | edges 824 | flocks 825 | vacant 826 | nothin 827 | costs 828 | machen 829 | trains 830 | summer 831 | knot 832 | rest 833 | steamer 834 | underline 835 | weekly 836 | instrument 837 | overthrow 838 | prominently 839 | joyful 840 | skies 841 | colony 842 | sums 843 | period 844 | dark 845 | traffic 846 | preference 847 | world 848 | vague 849 | dare 850 | stranger 851 | clad 852 | superiority 853 | clay 854 | satisfactory 855 | laisser 856 | divine 857 | thinks 858 | memories 859 | tube 860 | refer 861 | scientific 862 | confided 863 | intimate 864 | sprung 865 | prepared 866 | frenchman 867 | stone 868 | industry 869 | favorite 870 | slender 871 | meal 872 | neighbor 873 | act 874 | luck 875 | stony 876 | burning 877 | interruption 878 | anothers 879 | oder 880 | image 881 | lively 882 | parties 883 | het 884 | tropical 885 | hes 886 | gleam 887 | philadelphia 888 | meals 889 | hed 890 | sealed 891 | garment 892 | hem 893 | hen 894 | lang 895 | complete 896 | wits 897 | survived 898 | mich 899 | buying 900 | handsome 901 | pull 902 | rush 903 | october 904 | rage 905 | rags 906 | dirty 907 | agree 908 | darker 909 | detailed 910 | gone 911 | keine 912 | fright 913 | exhausted 914 | stealing 915 | carved 916 | walks 917 | watched 918 | tranquil 919 | amused 920 | tremble 921 | cream 922 | socrates 923 | tight 924 | indemnify 925 | congress 926 | terre 927 | decree 928 | etwas 929 | gifts 930 | homely 931 | accounts 932 | tricks 933 | mask 934 | mass 935 | adam 936 | original 937 | consider 938 | caused 939 | instincts 940 | weariness 941 | welfare 942 | reasoning 943 | causes 944 | attentive 945 | disciples 946 | hunting 947 | tait 948 | prophets 949 | tail 950 | dressing 951 | smile 952 | paying 953 | appointment 954 | returned 955 | puzzled 956 | floated 957 | condition 958 | sans 959 | cable 960 | accompanying 961 | marvellous 962 | laying 963 | joined 964 | large 965 | sang 966 | sand 967 | harry 968 | small 969 | sank 970 | quun 971 | maggie 972 | past 973 | carriages 974 | honourable 975 | pass 976 | destitute 977 | situated 978 | richard 979 | clock 980 | section 981 | prevailed 982 | nurse 983 | method 984 | contrast 985 | full 986 | escaping 987 | leaping 988 | hours 989 | hast 990 | november 991 | legend 992 | compliance 993 | experience 994 | prior 995 | periodic 996 | durch 997 | social 998 | action 999 | sweetness 1000 | depart 1001 | vie 1002 | vii 1003 | regiment 1004 | vit 1005 | beheld 1006 | anderen 1007 | select 1008 | attendance 1009 | mort 1010 | sitten 1011 | morn 1012 | gorgeous 1013 | door 1014 | substances 1015 | company 1016 | corrected 1017 | foundations 1018 | objections 1019 | doom 1020 | cunning 1021 | keeping 1022 | fatal 1023 | science 1024 | resources 1025 | morgan 1026 | learn 1027 | knocked 1028 | male 1029 | pick 1030 | beautiful 1031 | wieder 1032 | memoirs 1033 | stated 1034 | lives 1035 | suggestions 1036 | accept 1037 | autumn 1038 | fiercely 1039 | sense 1040 | steward 1041 | mehr 1042 | condemn 1043 | huge 1044 | respective 1045 | hugo 1046 | hugh 1047 | dismissed 1048 | glowing 1049 | creature 1050 | waved 1051 | plant 1052 | intended 1053 | notre 1054 | plane 1055 | waves 1056 | pleaded 1057 | refuse 1058 | resemble 1059 | fundamental 1060 | exclusions 1061 | replied 1062 | adorned 1063 | passages 1064 | mexican 1065 | bowl 1066 | trade 1067 | attitude 1068 | paper 1069 | scott 1070 | signs 1071 | smiling 1072 | clemens 1073 | roots 1074 | eines 1075 | alle 1076 | rapidly 1077 | alla 1078 | termed 1079 | deeds 1080 | epoch 1081 | hounds 1082 | symptoms 1083 | isaac 1084 | inquiry 1085 | travelling 1086 | entire 1087 | propose 1088 | personne 1089 | comforted 1090 | weeds 1091 | likeness 1092 | truths 1093 | isle 1094 | eloquence 1095 | courses 1096 | found 1097 | lantern 1098 | status 1099 | begged 1100 | upstairs 1101 | resolute 1102 | reduce 1103 | operation 1104 | really 1105 | ftp 1106 | quelque 1107 | missed 1108 | research 1109 | darling 1110 | occurs 1111 | salute 1112 | attentions 1113 | belief 1114 | risen 1115 | drifting 1116 | altar 1117 | murmur 1118 | imagine 1119 | rises 1120 | reproach 1121 | director 1122 | owners 1123 | reared 1124 | retained 1125 | sensations 1126 | expedient 1127 | testament 1128 | castle 1129 | exhibited 1130 | arose 1131 | major 1132 | gazed 1133 | slipped 1134 | succeeded 1135 | historian 1136 | number 1137 | preservation 1138 | murmured 1139 | stage 1140 | differ 1141 | heads 1142 | guest 1143 | introduction 1144 | avec 1145 | threatening 1146 | avez 1147 | contre 1148 | saint 1149 | justly 1150 | sympathies 1151 | warmly 1152 | ainsi 1153 | relationship 1154 | immediate 1155 | appreciation 1156 | consult 1157 | stairs 1158 | grace 1159 | aan 1160 | determined 1161 | marriage 1162 | pleases 1163 | defect 1164 | sell 1165 | self 1166 | internal 1167 | frail 1168 | dernier 1169 | play 1170 | swiftly 1171 | virus 1172 | plan 1173 | accepting 1174 | seize 1175 | cover 1176 | artistic 1177 | barren 1178 | barrel 1179 | sinner 1180 | dragged 1181 | despise 1182 | gold 1183 | toujours 1184 | session 1185 | overwhelmed 1186 | occupation 1187 | writes 1188 | writer 1189 | failed 1190 | factor 1191 | indifference 1192 | columns 1193 | lettre 1194 | dependent 1195 | beams 1196 | sunny 1197 | remedy 1198 | preparing 1199 | closely 1200 | compass 1201 | banner 1202 | enemy 1203 | pleasures 1204 | cry 1205 | blossoms 1206 | cease 1207 | obscure 1208 | river 1209 | approaching 1210 | insane 1211 | croire 1212 | ses 1213 | ser 1214 | carrying 1215 | byron 1216 | sex 1217 | see 1218 | sea 1219 | sen 1220 | outward 1221 | sei 1222 | knees 1223 | spirits 1224 | perilous 1225 | compliment 1226 | knowing 1227 | incident 1228 | death 1229 | tion 1230 | legislature 1231 | prospects 1232 | last 1233 | thou 1234 | barely 1235 | connection 1236 | let 1237 | approve 1238 | sink 1239 | load 1240 | prose 1241 | majesty 1242 | bell 1243 | etre 1244 | acted 1245 | allegiance 1246 | community 1247 | hollow 1248 | adjoining 1249 | church 1250 | belt 1251 | worthless 1252 | devil 1253 | acceptance 1254 | proprietor 1255 | extravagant 1256 | firm 1257 | resting 1258 | champion 1259 | fire 1260 | honom 1261 | fund 1262 | races 1263 | awake 1264 | representative 1265 | towns 1266 | chester 1267 | mournful 1268 | uncertain 1269 | hostess 1270 | judicial 1271 | straight 1272 | admire 1273 | forgetting 1274 | pressed 1275 | formats 1276 | kissing 1277 | robin 1278 | owed 1279 | pound 1280 | hoping 1281 | agitation 1282 | vol 1283 | vom 1284 | von 1285 | owen 1286 | binding 1287 | vow 1288 | vor 1289 | vos 1290 | navait 1291 | chase 1292 | funny 1293 | maids 1294 | elevated 1295 | shorter 1296 | rules 1297 | ruler 1298 | survey 1299 | forgiveness 1300 | heures 1301 | cigar 1302 | alert 1303 | viewing 1304 | devait 1305 | necessity 1306 | infamous 1307 | recent 1308 | amy 1309 | expend 1310 | person 1311 | regulating 1312 | redistribution 1313 | clasped 1314 | lads 1315 | telegram 1316 | unto 1317 | readers 1318 | admission 1319 | fitting 1320 | pillars 1321 | eager 1322 | parents 1323 | sydney 1324 | surprised 1325 | australia 1326 | victims 1327 | format 1328 | couple 1329 | wives 1330 | demande 1331 | suffering 1332 | quest 1333 | demanda 1334 | projects 1335 | formal 1336 | imposed 1337 | bruit 1338 | chorus 1339 | communications 1340 | continue 1341 | tribes 1342 | disorder 1343 | names 1344 | pertaining 1345 | canst 1346 | methods 1347 | senate 1348 | spring 1349 | palm 1350 | premire 1351 | sight 1352 | curious 1353 | pale 1354 | irresistible 1355 | novelty 1356 | religion 1357 | behave 1358 | assisted 1359 | temple 1360 | inclination 1361 | agreement 1362 | concealed 1363 | santa 1364 | relating 1365 | deserved 1366 | exaggerated 1367 | deserves 1368 | stuart 1369 | repair 1370 | reverence 1371 | awaited 1372 | appropriate 1373 | heeft 1374 | spending 1375 | exposed 1376 | submit 1377 | custom 1378 | suis 1379 | occupy 1380 | suit 1381 | morality 1382 | opens 1383 | considerably 1384 | inches 1385 | jewish 1386 | reine 1387 | link 1388 | competition 1389 | line 1390 | considerable 1391 | posted 1392 | charmed 1393 | faded 1394 | alarm 1395 | genial 1396 | defined 1397 | likewise 1398 | influence 1399 | chap 1400 | graceful 1401 | kaikki 1402 | codes 1403 | fixing 1404 | occasional 1405 | definitely 1406 | actors 1407 | sails 1408 | elements 1409 | energetic 1410 | oblige 1411 | faintly 1412 | dos 1413 | sides 1414 | ago 1415 | lane 1416 | land 1417 | resign 1418 | age 1419 | holes 1420 | walked 1421 | summit 1422 | came 1423 | fresh 1424 | menace 1425 | receive 1426 | essay 1427 | code 1428 | partial 1429 | results 1430 | existing 1431 | illustrated 1432 | stops 1433 | dainty 1434 | gossip 1435 | shrugged 1436 | pouvoir 1437 | iii 1438 | concerned 1439 | young 1440 | send 1441 | rejoined 1442 | sens 1443 | dislike 1444 | carelessly 1445 | indicating 1446 | jurisdiction 1447 | garden 1448 | torture 1449 | panting 1450 | continues 1451 | continued 1452 | magic 1453 | harbor 1454 | marry 1455 | tre 1456 | eve 1457 | anxious 1458 | threat 1459 | race 1460 | trs 1461 | pledge 1462 | mediterranean 1463 | licensed 1464 | enclosed 1465 | wheat 1466 | odd 1467 | pris 1468 | victor 1469 | apparatus 1470 | expressed 1471 | hereditary 1472 | richmond 1473 | indian 1474 | flowing 1475 | expresses 1476 | bird 1477 | scenery 1478 | led 1479 | lee 1480 | ibid 1481 | leg 1482 | gathered 1483 | spake 1484 | dressed 1485 | les 1486 | poverty 1487 | consideration 1488 | invented 1489 | fifteen 1490 | great 1491 | engage 1492 | technical 1493 | involved 1494 | beaucoup 1495 | resulting 1496 | defeat 1497 | opinion 1498 | makes 1499 | thats 1500 | holmes 1501 | sire 1502 | complying 1503 | tools 1504 | desiring 1505 | standing 1506 | confidence 1507 | exciting 1508 | archbishop 1509 | ministers 1510 | eleven 1511 | doubt 1512 | zij 1513 | pencil 1514 | occurred 1515 | bodily 1516 | opposing 1517 | sharply 1518 | baby 1519 | gladly 1520 | charity 1521 | balls 1522 | animals 1523 | devant 1524 | retreated 1525 | challenge 1526 | pour 1527 | thin 1528 | coffin 1529 | slid 1530 | weaker 1531 | bent 1532 | reeds 1533 | process 1534 | lock 1535 | coolness 1536 | rode 1537 | purposes 1538 | pieces 1539 | high 1540 | bend 1541 | slip 1542 | trumpet 1543 | educational 1544 | destroying 1545 | delay 1546 | procured 1547 | pair 1548 | waren 1549 | mysteries 1550 | comedy 1551 | intelligent 1552 | parson 1553 | especial 1554 | blocks 1555 | singular 1556 | await 1557 | tied 1558 | halted 1559 | fits 1560 | ties 1561 | varied 1562 | realized 1563 | counter 1564 | element 1565 | writ 1566 | allow 1567 | volunteers 1568 | counted 1569 | produces 1570 | move 1571 | doubtful 1572 | comme 1573 | warren 1574 | perfect 1575 | decay 1576 | chosen 1577 | dispose 1578 | meantime 1579 | thieves 1580 | degrees 1581 | choses 1582 | communication 1583 | derivative 1584 | attachment 1585 | physicians 1586 | designs 1587 | animal 1588 | docs 1589 | trouve 1590 | doch 1591 | snake 1592 | kiss 1593 | cage 1594 | transparent 1595 | establishment 1596 | traced 1597 | eben 1598 | sufficiently 1599 | delightful 1600 | betty 1601 | truth 1602 | persia 1603 | accompanied 1604 | beneath 1605 | traces 1606 | glasses 1607 | tents 1608 | scanty 1609 | society 1610 | books 1611 | thirteen 1612 | patch 1613 | agriculture 1614 | wander 1615 | witness 1616 | traversed 1617 | cest 1618 | cromwell 1619 | burke 1620 | troop 1621 | shut 1622 | perish 1623 | temps 1624 | surely 1625 | thrust 1626 | david 1627 | length 1628 | removing 1629 | davis 1630 | staggered 1631 | manuscript 1632 | blown 1633 | ihr 1634 | scene 1635 | owned 1636 | jesus 1637 | ihn 1638 | ihm 1639 | owner 1640 | blows 1641 | scent 1642 | legislative 1643 | fascinating 1644 | start 1645 | festival 1646 | traveller 1647 | system 1648 | sergeant 1649 | travelled 1650 | behaved 1651 | painful 1652 | interests 1653 | vigorous 1654 | stars 1655 | lingered 1656 | bargain 1657 | steel 1658 | warfare 1659 | bother 1660 | tortured 1661 | steep 1662 | torrent 1663 | devotion 1664 | ingenious 1665 | false 1666 | beggar 1667 | trusting 1668 | gently 1669 | gentle 1670 | sky 1671 | clearly 1672 | viewed 1673 | documents 1674 | dishes 1675 | studying 1676 | ashore 1677 | mille 1678 | accuracy 1679 | nancy 1680 | courtesy 1681 | device 1682 | bred 1683 | stronger 1684 | face 1685 | perceiving 1686 | mechanical 1687 | wounded 1688 | painting 1689 | fact 1690 | atmosphere 1691 | bring 1692 | bedroom 1693 | rough 1694 | attributes 1695 | trivial 1696 | principal 1697 | nominally 1698 | pause 1699 | jaw 1700 | mute 1701 | jar 1702 | jan 1703 | planted 1704 | jai 1705 | riding 1706 | sylvia 1707 | hope 1708 | exchanged 1709 | abbe 1710 | insight 1711 | handle 1712 | listened 1713 | bonds 1714 | familiar 1715 | lucky 1716 | prohibition 1717 | produced 1718 | taxes 1719 | summon 1720 | stuff 1721 | ohio 1722 | strengthened 1723 | allusion 1724 | frame 1725 | edition 1726 | austrian 1727 | packed 1728 | sehr 1729 | wire 1730 | reprit 1731 | destiny 1732 | injustice 1733 | pistol 1734 | youll 1735 | email 1736 | ends 1737 | notion 1738 | industrious 1739 | courtyard 1740 | staring 1741 | restrictions 1742 | drum 1743 | ett 1744 | invited 1745 | ety 1746 | doorway 1747 | figures 1748 | ete 1749 | quitted 1750 | conclude 1751 | whispering 1752 | labor 1753 | shudder 1754 | dazzling 1755 | rhode 1756 | drank 1757 | rates 1758 | feather 1759 | waste 1760 | louisiana 1761 | tyranny 1762 | neighbour 1763 | resort 1764 | hateful 1765 | spain 1766 | wearied 1767 | theyve 1768 | deductible 1769 | discoveries 1770 | ripe 1771 | site 1772 | lust 1773 | edgar 1774 | raison 1775 | sits 1776 | juan 1777 | pauls 1778 | romance 1779 | matthew 1780 | estates 1781 | covenant 1782 | ball 1783 | columbia 1784 | sade 1785 | dusk 1786 | bald 1787 | infinite 1788 | identity 1789 | pleasantly 1790 | argue 1791 | colour 1792 | gnral 1793 | command 1794 | oft 1795 | drawing 1796 | lest 1797 | negligence 1798 | flesh 1799 | moments 1800 | compel 1801 | rooms 1802 | paul 1803 | afflicted 1804 | web 1805 | generous 1806 | clergyman 1807 | wee 1808 | wed 1809 | wel 1810 | arrest 1811 | crack 1812 | practise 1813 | increased 1814 | government 1815 | chancellor 1816 | haut 1817 | stooped 1818 | five 1819 | desk 1820 | ayant 1821 | enemys 1822 | incessant 1823 | emma 1824 | chairs 1825 | undertaking 1826 | nerves 1827 | replacement 1828 | gaining 1829 | thief 1830 | immortal 1831 | daylight 1832 | springs 1833 | recognition 1834 | literally 1835 | avoid 1836 | shone 1837 | raging 1838 | passion 1839 | forgiven 1840 | avoir 1841 | blowing 1842 | pressure 1843 | posterity 1844 | imaginary 1845 | coldly 1846 | hiding 1847 | gained 1848 | sister 1849 | asks 1850 | seeds 1851 | hier 1852 | strode 1853 | software 1854 | alliance 1855 | letters 1856 | parler 1857 | catherine 1858 | screamed 1859 | erect 1860 | cultivated 1861 | roads 1862 | milieu 1863 | charities 1864 | mere 1865 | spots 1866 | peters 1867 | eene 1868 | specimens 1869 | naturally 1870 | function 1871 | lowered 1872 | apollo 1873 | basin 1874 | count 1875 | tossed 1876 | marquis 1877 | evident 1878 | official 1879 | smooth 1880 | triumphant 1881 | excitement 1882 | placed 1883 | convince 1884 | monument 1885 | problem 1886 | bearing 1887 | irish 1888 | rightly 1889 | recognize 1890 | contribute 1891 | ins 1892 | consumed 1893 | inn 1894 | ink 1895 | ing 1896 | inc 1897 | effected 1898 | compared 1899 | variety 1900 | trials 1901 | seul 1902 | forests 1903 | lately 1904 | saviour 1905 | details 1906 | behold 1907 | illusion 1908 | reckless 1909 | francisco 1910 | monday 1911 | oppression 1912 | treason 1913 | chance 1914 | veil 1915 | vein 1916 | inspiration 1917 | ghost 1918 | lasted 1919 | rule 1920 | pension 1921 | searched 1922 | rural 1923 | gardens 1924 | doubts 1925 | desirable 1926 | mansion 1927 | oldest 1928 | integrity 1929 | votes 1930 | pedro 1931 | effectually 1932 | neighbours 1933 | edward 1934 | voted 1935 | arkansas 1936 | sped 1937 | worth 1938 | compassion 1939 | blanket 1940 | jacob 1941 | wagons 1942 | chapel 1943 | bewildered 1944 | red 1945 | triumph 1946 | cher 1947 | monotonous 1948 | preached 1949 | chez 1950 | sabbath 1951 | horn 1952 | preacher 1953 | chem 1954 | machines 1955 | established 1956 | settlement 1957 | deliberate 1958 | neat 1959 | consisting 1960 | told 1961 | ascent 1962 | notions 1963 | menschen 1964 | kindred 1965 | richest 1966 | protection 1967 | pursuit 1968 | obtained 1969 | gli 1970 | balance 1971 | daughter 1972 | items 1973 | employees 1974 | smoke 1975 | glittering 1976 | diameter 1977 | secure 1978 | angrily 1979 | highly 1980 | thursday 1981 | glance 1982 | total 1983 | sarah 1984 | plot 1985 | indians 1986 | negative 1987 | insult 1988 | indiana 1989 | separated 1990 | reign 1991 | pierced 1992 | continual 1993 | yard 1994 | striving 1995 | word 1996 | wore 1997 | work 1998 | refusing 1999 | worn 2000 | theories 2001 | ere 2002 | era 2003 | elbow 2004 | employee 2005 | splendour 2006 | serpent 2007 | quivering 2008 | gegen 2009 | india 2010 | indies 2011 | esther 2012 | indifferent 2013 | jusqu 2014 | provide 2015 | agony 2016 | egyptian 2017 | far 2018 | boats 2019 | nombre 2020 | ordinary 2021 | beach 2022 | fever 2023 | lad 2024 | ladder 2025 | earlier 2026 | customs 2027 | lay 2028 | bottles 2029 | law 2030 | arch 2031 | las 2032 | hasty 2033 | appreciate 2034 | greet 2035 | hasta 2036 | greek 2037 | haste 2038 | parish 2039 | fan 2040 | order 2041 | modesty 2042 | office 2043 | devote 2044 | consent 2045 | satisfied 2046 | japan 2047 | enfants 2048 | mayor 2049 | pines 2050 | production 2051 | damages 2052 | eventually 2053 | coffee 2054 | affected 2055 | fragment 2056 | thee 2057 | safe 2058 | break 2059 | band 2060 | sack 2061 | fear 2062 | soothing 2063 | bank 2064 | bread 2065 | rocky 2066 | reasonably 2067 | slavery 2068 | rocks 2069 | reasonable 2070 | bells 2071 | lifted 2072 | schemes 2073 | logs 2074 | crimes 2075 | flock 2076 | slew 2077 | network 2078 | forts 2079 | diesem 2080 | diesen 2081 | fellows 2082 | strangers 2083 | dieser 2084 | daniel 2085 | remorse 2086 | medicine 2087 | forth 2088 | barrier 2089 | standard 2090 | jetzt 2091 | amazement 2092 | enlightened 2093 | recovering 2094 | created 2095 | renew 2096 | oppose 2097 | footsteps 2098 | render 2099 | synonymous 2100 | delicious 2101 | thoughtfully 2102 | thick 2103 | electronic 2104 | illustrate 2105 | airs 2106 | compromise 2107 | observations 2108 | john 2109 | dogs 2110 | happily 2111 | luncheon 2112 | albert 2113 | rejected 2114 | wasted 2115 | prendre 2116 | tavern 2117 | scenes 2118 | seated 2119 | guilt 2120 | historical 2121 | powers 2122 | failing 2123 | respecting 2124 | portraits 2125 | return 2126 | enchanted 2127 | manner 2128 | stomach 2129 | etext 2130 | contents 2131 | forced 2132 | strength 2133 | realm 2134 | laden 2135 | convenient 2136 | latter 2137 | subjects 2138 | luxury 2139 | forces 2140 | transmit 2141 | explanation 2142 | circles 2143 | maiden 2144 | ebook 2145 | exercised 2146 | extending 2147 | germany 2148 | exercises 2149 | imported 2150 | grave 2151 | calculated 2152 | ecclesiastical 2153 | swamp 2154 | accounted 2155 | aunt 2156 | sun 2157 | responded 2158 | fitted 2159 | reserve 2160 | decidedly 2161 | lewis 2162 | brief 2163 | respectfully 2164 | nephew 2165 | enjoyed 2166 | resemblance 2167 | just 2168 | guidance 2169 | deepest 2170 | pursuing 2171 | sehen 2172 | olivat 2173 | adequate 2174 | personality 2175 | preferred 2176 | yielded 2177 | haunted 2178 | happiest 2179 | assigned 2180 | runs 2181 | covering 2182 | furent 2183 | nichts 2184 | squadron 2185 | steal 2186 | steam 2187 | secretary 2188 | observer 2189 | observed 2190 | depends 2191 | cattle 2192 | miserable 2193 | draws 2194 | away 2195 | gentleman 2196 | calamity 2197 | bien 2198 | unable 2199 | drawn 2200 | accord 2201 | terms 2202 | diese 2203 | handful 2204 | spectacles 2205 | travellers 2206 | kitchen 2207 | bras 2208 | received 2209 | essentially 2210 | cow 2211 | ill 2212 | sagte 2213 | gasped 2214 | ils 2215 | receives 2216 | col 2217 | con 2218 | collecting 2219 | tough 2220 | spear 2221 | royal 2222 | trunk 2223 | tons 2224 | wider 2225 | merchantibility 2226 | speak 2227 | gratitude 2228 | petty 2229 | engines 2230 | condemned 2231 | warmth 2232 | duties 2233 | families 2234 | innocent 2235 | attacked 2236 | concerning 2237 | excite 2238 | salon 2239 | gracious 2240 | applied 2241 | physician 2242 | ahead 2243 | publicly 2244 | air 2245 | aim 2246 | abrupt 2247 | aid 2248 | property 2249 | mistake 2250 | hebrew 2251 | exile 2252 | confirmed 2253 | descent 2254 | perform 2255 | demonstration 2256 | punctuation 2257 | jerry 2258 | sheltered 2259 | monarch 2260 | wheel 2261 | independent 2262 | springing 2263 | swell 2264 | hang 2265 | evil 2266 | hand 2267 | liberties 2268 | hans 2269 | blamed 2270 | prescribed 2271 | vermont 2272 | kept 2273 | thy 2274 | ihren 2275 | humble 2276 | ragged 2277 | contact 2278 | mamma 2279 | humbly 2280 | ihrer 2281 | musical 2282 | traditions 2283 | quoted 2284 | gods 2285 | repose 2286 | farther 2287 | victim 2288 | electronically 2289 | adding 2290 | unique 2291 | hills 2292 | passive 2293 | shout 2294 | belongs 2295 | transformed 2296 | board 2297 | righteous 2298 | emphasis 2299 | arab 2300 | boxes 2301 | cape 2302 | retreat 2303 | theyre 2304 | night 2305 | security 2306 | antique 2307 | portuguese 2308 | honored 2309 | sends 2310 | flatter 2311 | born 2312 | productions 2313 | bore 2314 | humor 2315 | purple 2316 | asking 2317 | honoured 2318 | denied 2319 | beating 2320 | plw 2321 | columbus 2322 | hare 2323 | view 2324 | illustration 2325 | englishmen 2326 | post 2327 | properties 2328 | theirs 2329 | newspapers 2330 | months 2331 | accepts 2332 | dined 2333 | horizon 2334 | obs 2335 | jacques 2336 | considerations 2337 | mantle 2338 | pays 2339 | prisoners 2340 | float 2341 | profession 2342 | bound 2343 | rendering 2344 | loin 2345 | formidable 2346 | creek 2347 | strangely 2348 | amidst 2349 | legislation 2350 | sovereign 2351 | fight 2352 | wax 2353 | editions 2354 | wat 2355 | war 2356 | lowest 2357 | snowy 2358 | converse 2359 | taken 2360 | elderly 2361 | astonished 2362 | true 2363 | absent 2364 | veiled 2365 | maximum 2366 | generosity 2367 | anew 2368 | unusually 2369 | inquiring 2370 | prayed 2371 | promises 2372 | moore 2373 | frederick 2374 | abstract 2375 | israel 2376 | evidence 2377 | guessed 2378 | promised 2379 | prayer 2380 | archive 2381 | physical 2382 | dimly 2383 | dying 2384 | stake 2385 | reality 2386 | interested 2387 | holding 2388 | test 2389 | unwilling 2390 | shrink 2391 | brothers 2392 | welcome 2393 | polite 2394 | bestowed 2395 | paces 2396 | interval 2397 | governed 2398 | beds 2399 | loyal 2400 | reception 2401 | songs 2402 | concept 2403 | broke 2404 | dance 2405 | consul 2406 | horseback 2407 | disturbance 2408 | grateful 2409 | battle 2410 | devoted 2411 | certainly 2412 | mounted 2413 | donner 2414 | flash 2415 | aristocratic 2416 | fog 2417 | mettre 2418 | terror 2419 | brown 2420 | charles 2421 | hannah 2422 | ihnen 2423 | liability 2424 | trouble 2425 | blast 2426 | brows 2427 | feeble 2428 | perceived 2429 | presented 2430 | turns 2431 | gun 2432 | gut 2433 | guy 2434 | upper 2435 | brave 2436 | regret 2437 | discover 2438 | cost 2439 | quelques 2440 | helpless 2441 | tempest 2442 | penetrated 2443 | cargo 2444 | curse 2445 | appear 2446 | assistance 2447 | shares 2448 | uniform 2449 | shared 2450 | appeal 2451 | satisfy 2452 | supporting 2453 | explosion 2454 | disclaim 2455 | roaring 2456 | teacher 2457 | change 2458 | sending 2459 | flames 2460 | impatiently 2461 | trial 2462 | franklin 2463 | patriotic 2464 | pillow 2465 | homeward 2466 | retired 2467 | extra 2468 | marked 2469 | sincerely 2470 | italians 2471 | rarely 2472 | wordforms 2473 | market 2474 | prove 2475 | live 2476 | wonderfully 2477 | angels 2478 | zur 2479 | entrance 2480 | missionaries 2481 | club 2482 | repentance 2483 | envelope 2484 | hesitated 2485 | jag 2486 | organizations 2487 | jealousy 2488 | cas 2489 | car 2490 | cap 2491 | cat 2492 | incidents 2493 | lavait 2494 | cab 2495 | spy 2496 | dedicated 2497 | hears 2498 | noch 2499 | december 2500 | paused 2501 | heard 2502 | fortunes 2503 | chin 2504 | purity 2505 | spn 2506 | clothing 2507 | occur 2508 | fortunately 2509 | discussion 2510 | means 2511 | write 2512 | flank 2513 | retorted 2514 | economy 2515 | armies 2516 | product 2517 | staircase 2518 | sacrifice 2519 | southern 2520 | produce 2521 | commit 2522 | heroes 2523 | lifting 2524 | remember 2525 | candles 2526 | crept 2527 | offend 2528 | typical 2529 | serving 2530 | displayed 2531 | brain 2532 | cold 2533 | birds 2534 | trifle 2535 | forme 2536 | acknowledge 2537 | curls 2538 | vicinity 2539 | inflicted 2540 | forms 2541 | window 2542 | spacious 2543 | saxon 2544 | correspondence 2545 | nom 2546 | non 2547 | blockquote 2548 | halt 2549 | fling 2550 | nod 2551 | nog 2552 | introduce 2553 | wealthy 2554 | nov 2555 | provision 2556 | discuss 2557 | nos 2558 | wont 2559 | thankful 2560 | servant 2561 | january 2562 | drop 2563 | entirely 2564 | cliffs 2565 | kann 2566 | domain 2567 | fired 2568 | directing 2569 | hurried 2570 | fires 2571 | year 2572 | happen 2573 | avoided 2574 | amusement 2575 | shown 2576 | accomplish 2577 | opened 2578 | space 2579 | thirst 2580 | hastily 2581 | increase 2582 | rational 2583 | receiving 2584 | shows 2585 | inevitably 2586 | cars 2587 | cart 2588 | quart 2589 | advantages 2590 | rebel 2591 | obligation 2592 | marine 2593 | inevitable 2594 | card 2595 | care 2596 | contemplation 2597 | british 2598 | honest 2599 | palaces 2600 | invitation 2601 | promotion 2602 | entrusted 2603 | suffice 2604 | blind 2605 | zal 2606 | striking 2607 | omitted 2608 | directly 2609 | impossible 2610 | message 2611 | drove 2612 | tomorrow 2613 | size 2614 | sheep 2615 | sheer 2616 | checked 2617 | silent 2618 | caught 2619 | breed 2620 | ikke 2621 | tragic 2622 | exerted 2623 | friend 2624 | pomp 2625 | brains 2626 | resulted 2627 | grands 2628 | flowers 2629 | appreciated 2630 | rugged 2631 | accordance 2632 | transferred 2633 | apples 2634 | fruits 2635 | accessed 2636 | sublime 2637 | troublesome 2638 | angel 2639 | remained 2640 | premier 2641 | anger 2642 | breakfast 2643 | recover 2644 | form 2645 | terrific 2646 | equipment 2647 | deux 2648 | online 2649 | begin 2650 | price 2651 | neatly 2652 | wird 2653 | successive 2654 | america 2655 | forever 2656 | bishops 2657 | feminine 2658 | dream 2659 | attempting 2660 | steady 2661 | mrs 2662 | sunset 2663 | hurled 2664 | clearing 2665 | professional 2666 | dispersed 2667 | abraham 2668 | german 2669 | mains 2670 | fifty 2671 | discovered 2672 | gratified 2673 | maine 2674 | fifth 2675 | ground 2676 | aint 2677 | daar 2678 | title 2679 | proclamation 2680 | stained 2681 | saints 2682 | staid 2683 | developed 2684 | shrill 2685 | cannon 2686 | samuel 2687 | truly 2688 | honours 2689 | leather 2690 | seldom 2691 | leur 2692 | husband 2693 | concert 2694 | burst 2695 | famine 2696 | elected 2697 | asleep 2698 | sport 2699 | concern 2700 | colours 2701 | complexion 2702 | justified 2703 | whipped 2704 | notice 2705 | garde 2706 | pluck 2707 | blame 2708 | analyzed 2709 | article 2710 | vrai 2711 | vue 2712 | monk 2713 | nile 2714 | wheels 2715 | comes 2716 | madness 2717 | cuando 2718 | learning 2719 | liberal 2720 | muttered 2721 | oliver 2722 | sest 2723 | cares 2724 | informed 2725 | cared 2726 | punished 2727 | dangers 2728 | monsieur 2729 | ets 2730 | wounds 2731 | constantinople 2732 | external 2733 | suspected 2734 | countless 2735 | trick 2736 | freely 2737 | ein 2738 | soil 2739 | startling 2740 | commander 2741 | soit 2742 | embrace 2743 | soir 2744 | heels 2745 | commanded 2746 | ship 2747 | worry 2748 | northward 2749 | develop 2750 | inquire 2751 | gentlemen 2752 | gravel 2753 | poetic 2754 | followers 2755 | streams 2756 | document 2757 | noble 2758 | finish 2759 | centuries 2760 | enjoyment 2761 | respected 2762 | fruit 2763 | despatched 2764 | tradition 2765 | voulait 2766 | complained 2767 | charges 2768 | constitutional 2769 | severe 2770 | breeze 2771 | charged 2772 | heaps 2773 | armour 2774 | valuable 2775 | shouts 2776 | sweeping 2777 | civilized 2778 | growled 2779 | actor 2780 | touch 2781 | speed 2782 | renewed 2783 | thinking 2784 | improvement 2785 | verse 2786 | treatment 2787 | struck 2788 | real 2789 | frown 2790 | read 2791 | offence 2792 | specimen 2793 | discontinue 2794 | early 2795 | earnest 2796 | listening 2797 | execution 2798 | lady 2799 | rear 2800 | ruled 2801 | fortune 2802 | imprisoned 2803 | pounds 2804 | greeting 2805 | miracle 2806 | annually 2807 | benefit 2808 | fully 2809 | downward 2810 | twelve 2811 | falsehood 2812 | apartments 2813 | passions 2814 | squire 2815 | recorded 2816 | conservative 2817 | disait 2818 | assembly 2819 | business 2820 | sixth 2821 | equivalent 2822 | seine 2823 | strained 2824 | uneasy 2825 | innocence 2826 | sixty 2827 | habe 2828 | francis 2829 | guides 2830 | throw 2831 | comparison 2832 | central 2833 | piety 2834 | intolerable 2835 | boldly 2836 | fell 2837 | wolf 2838 | greatly 2839 | testimony 2840 | invested 2841 | youd 2842 | persecution 2843 | heated 2844 | stare 2845 | log 2846 | prepare 2847 | area 2848 | assumed 2849 | lon 2850 | los 2851 | cats 2852 | low 2853 | lot 2854 | politeness 2855 | shower 2856 | groan 2857 | delayed 2858 | philosophers 2859 | curiously 2860 | cottage 2861 | pitched 2862 | trying 2863 | copied 2864 | hire 2865 | fraud 2866 | circulation 2867 | sadness 2868 | tones 2869 | oxen 2870 | arabs 2871 | describe 2872 | moved 2873 | sales 2874 | chambre 2875 | moves 2876 | yon 2877 | stationed 2878 | englishman 2879 | administered 2880 | green 2881 | thither 2882 | evenings 2883 | fools 2884 | forcing 2885 | poor 2886 | desolation 2887 | drift 2888 | massachusetts 2889 | suited 2890 | pool 2891 | building 2892 | assert 2893 | controlled 2894 | moonlight 2895 | restored 2896 | doubted 2897 | strings 2898 | pointing 2899 | breadth 2900 | month 2901 | ceased 2902 | thoughtful 2903 | publish 2904 | customary 2905 | religious 2906 | carpet 2907 | dreadful 2908 | referring 2909 | unenforceability 2910 | pledged 2911 | arisen 2912 | solicit 2913 | sustain 2914 | vers 2915 | confidential 2916 | homes 2917 | horror 2918 | robes 2919 | coloured 2920 | verb 2921 | decide 2922 | heaven 2923 | louis 2924 | manager 2925 | circuit 2926 | study 2927 | fence 2928 | streets 2929 | casual 2930 | conscience 2931 | darkness 2932 | witnessed 2933 | induce 2934 | emotions 2935 | witnesses 2936 | learned 2937 | hnt 2938 | edited 2939 | loose 2940 | modify 2941 | answers 2942 | forgive 2943 | tracks 2944 | excess 2945 | praises 2946 | strong 2947 | interposed 2948 | colored 2949 | conviction 2950 | disclaimers 2951 | inspired 2952 | losses 2953 | soldier 2954 | amount 2955 | arent 2956 | family 2957 | requiring 2958 | put 2959 | aimed 2960 | trained 2961 | attendant 2962 | conventional 2963 | takes 2964 | injure 2965 | revelation 2966 | contains 2967 | unpleasant 2968 | mysterious 2969 | injury 2970 | bushes 2971 | excuse 2972 | commenced 2973 | impulse 2974 | dios 2975 | hurry 2976 | producing 2977 | sovereignty 2978 | weighed 2979 | offended 2980 | nebraska 2981 | nine 2982 | history 2983 | visage 2984 | pushed 2985 | cows 2986 | phrase 2987 | species 2988 | firmly 2989 | processors 2990 | prussian 2991 | stayed 2992 | reject 2993 | capitaine 2994 | tried 2995 | rude 2996 | derived 2997 | tries 2998 | invasion 2999 | unlink 3000 | contrived 3001 | kein 3002 | dread 3003 | banks 3004 | egg 3005 | help 3006 | soon 3007 | held 3008 | committee 3009 | committed 3010 | hell 3011 | labours 3012 | actually 3013 | absence 3014 | systems 3015 | finer 3016 | fool 3017 | evening 3018 | food 3019 | pglaf 3020 | floating 3021 | anticipated 3022 | cet 3023 | ces 3024 | foot 3025 | desperately 3026 | faire 3027 | occasions 3028 | enlarged 3029 | bless 3030 | stopped 3031 | fairy 3032 | referred 3033 | heavy 3034 | transcribe 3035 | restless 3036 | jaws 3037 | blank 3038 | punitive 3039 | todo 3040 | event 3041 | unnatural 3042 | robert 3043 | surrounded 3044 | douglas 3045 | jolly 3046 | safety 3047 | dix 3048 | issue 3049 | ass 3050 | passer 3051 | None 3052 | drink 3053 | dirt 3054 | favored 3055 | pub 3056 | houses 3057 | reason 3058 | base 3059 | dire 3060 | ask 3061 | earliest 3062 | heroic 3063 | revolutionary 3064 | terrible 3065 | voor 3066 | terribly 3067 | american 3068 | expecting 3069 | daisy 3070 | syria 3071 | blush 3072 | probability 3073 | encoding 3074 | knocking 3075 | reflected 3076 | antiquity 3077 | elder 3078 | unexpected 3079 | mist 3080 | visions 3081 | meadow 3082 | horse 3083 | obedience 3084 | station 3085 | scheme 3086 | bowed 3087 | selling 3088 | passed 3089 | longtemps 3090 | authors 3091 | translation 3092 | hundred 3093 | kindly 3094 | grey 3095 | bride 3096 | recovered 3097 | garrison 3098 | charlotte 3099 | withered 3100 | wasnt 3101 | alongside 3102 | aussi 3103 | emperors 3104 | juice 3105 | substantial 3106 | comrades 3107 | sheet 3108 | organs 3109 | karl 3110 | lie 3111 | jour 3112 | lib 3113 | flaming 3114 | scotland 3115 | officers 3116 | lit 3117 | labour 3118 | lip 3119 | useless 3120 | experienced 3121 | quoth 3122 | quote 3123 | kan 3124 | kam 3125 | plunder 3126 | hired 3127 | experiences 3128 | eaten 3129 | approved 3130 | salary 3131 | sturdy 3132 | performances 3133 | clear 3134 | popularity 3135 | unreasonable 3136 | clean 3137 | lordship 3138 | usual 3139 | efter 3140 | phenomenon 3141 | heavens 3142 | copyright 3143 | justice 3144 | schon 3145 | bonheur 3146 | quel 3147 | darted 3148 | pretty 3149 | hardened 3150 | circle 3151 | trees 3152 | famous 3153 | feels 3154 | grew 3155 | pretending 3156 | chimney 3157 | alexander 3158 | sacrificed 3159 | alteration 3160 | perfume 3161 | sacrifices 3162 | gloves 3163 | switzerland 3164 | poisoned 3165 | courteous 3166 | scanning 3167 | seventeen 3168 | patriotism 3169 | maurice 3170 | throwing 3171 | ctait 3172 | culture 3173 | descriptions 3174 | close 3175 | despatch 3176 | probable 3177 | horrid 3178 | pictures 3179 | familiarity 3180 | won 3181 | woe 3182 | conditions 3183 | unconscious 3184 | missing 3185 | distinguish 3186 | abruptly 3187 | league 3188 | secrets 3189 | sensitive 3190 | forgotten 3191 | liked 3192 | headed 3193 | battery 3194 | manners 3195 | header 3196 | likes 3197 | vessel 3198 | described 3199 | stamp 3200 | damp 3201 | footnote 3202 | describes 3203 | coarse 3204 | maintenance 3205 | collected 3206 | ollut 3207 | territory 3208 | delights 3209 | dame 3210 | lived 3211 | partly 3212 | wet 3213 | anthony 3214 | recalled 3215 | bidding 3216 | utmost 3217 | look 3218 | governor 3219 | rope 3220 | pace 3221 | match 3222 | fleet 3223 | animated 3224 | guide 3225 | sombre 3226 | pack 3227 | costly 3228 | sentences 3229 | embroidered 3230 | rulers 3231 | reads 3232 | ready 3233 | zijne 3234 | grant 3235 | belong 3236 | grand 3237 | modification 3238 | shak 3239 | composition 3240 | conflict 3241 | temporary 3242 | bon 3243 | censure 3244 | uses 3245 | user 3246 | brussels 3247 | older 3248 | poland 3249 | theology 3250 | ambassador 3251 | cave 3252 | judgments 3253 | settlements 3254 | quarters 3255 | belgium 3256 | useful 3257 | praying 3258 | retirement 3259 | questioned 3260 | remaining 3261 | march 3262 | lacking 3263 | showing 3264 | dominions 3265 | game 3266 | wiser 3267 | wings 3268 | submission 3269 | signal 3270 | manifest 3271 | donne 3272 | een 3273 | housekeeper 3274 | translated 3275 | sketch 3276 | autres 3277 | creation 3278 | pierre 3279 | urgent 3280 | lips 3281 | economic 3282 | jamais 3283 | savage 3284 | nonproprietary 3285 | describing 3286 | exceeding 3287 | providence 3288 | civilization 3289 | everybody 3290 | run 3291 | processing 3292 | lakes 3293 | rue 3294 | step 3295 | abroad 3296 | wealth 3297 | shine 3298 | faith 3299 | wouldnt 3300 | indulgence 3301 | block 3302 | ida 3303 | miracles 3304 | seeing 3305 | pero 3306 | nonsense 3307 | rolls 3308 | placing 3309 | vigour 3310 | worshipped 3311 | konnte 3312 | manufacture 3313 | duly 3314 | registered 3315 | frost 3316 | properly 3317 | alive 3318 | russian 3319 | warlike 3320 | dull 3321 | pwh 3322 | ideals 3323 | skull 3324 | lords 3325 | accustomed 3326 | loving 3327 | ordered 3328 | flush 3329 | fallait 3330 | cotton 3331 | ancestors 3332 | objection 3333 | dashed 3334 | nai 3335 | fears 3336 | wollte 3337 | application 3338 | transport 3339 | department 3340 | nay 3341 | wished 3342 | smiles 3343 | draw 3344 | venerable 3345 | spectators 3346 | wohl 3347 | kansas 3348 | visits 3349 | frances 3350 | william 3351 | drag 3352 | rested 3353 | oregon 3354 | smiled 3355 | restrained 3356 | structure 3357 | practically 3358 | required 3359 | depth 3360 | neighbouring 3361 | requires 3362 | sounded 3363 | cheerful 3364 | farms 3365 | proposition 3366 | etait 3367 | kate 3368 | compact 3369 | baron 3370 | suits 3371 | oclock 3372 | suite 3373 | friendly 3374 | virtuous 3375 | persuade 3376 | prudence 3377 | maar 3378 | maam 3379 | telling 3380 | kindled 3381 | stiff 3382 | meant 3383 | positions 3384 | michael 3385 | verdict 3386 | betwixt 3387 | barbara 3388 | boots 3389 | waking 3390 | jump 3391 | picked 3392 | download 3393 | honors 3394 | plays 3395 | colonel 3396 | valet 3397 | cell 3398 | rotten 3399 | experiment 3400 | poles 3401 | nicholas 3402 | cela 3403 | melancholy 3404 | commercial 3405 | convert 3406 | northern 3407 | gens 3408 | products 3409 | salvation 3410 | examining 3411 | wie 3412 | wid 3413 | addresses 3414 | clark 3415 | danger 3416 | clare 3417 | win 3418 | manage 3419 | clara 3420 | wij 3421 | assertion 3422 | austria 3423 | wit 3424 | wir 3425 | singing 3426 | cloud 3427 | remains 3428 | vehicle 3429 | agreeable 3430 | jonathan 3431 | cheeks 3432 | started 3433 | charming 3434 | appointed 3435 | crosses 3436 | ride 3437 | arches 3438 | crossed 3439 | servants 3440 | meet 3441 | drops 3442 | certainty 3443 | meer 3444 | control 3445 | votre 3446 | links 3447 | escaped 3448 | pulling 3449 | zwischen 3450 | sought 3451 | wonderful 3452 | skirt 3453 | hesitate 3454 | defective 3455 | picturesque 3456 | poetry 3457 | arrangement 3458 | located 3459 | sentiments 3460 | instinctively 3461 | circular 3462 | fare 3463 | parce 3464 | furiously 3465 | farm 3466 | chiefs 3467 | fatigue 3468 | heure 3469 | consecrated 3470 | swimming 3471 | costume 3472 | mentioned 3473 | outer 3474 | exclusion 3475 | aucune 3476 | masses 3477 | brook 3478 | hail 3479 | venait 3480 | hommes 3481 | pure 3482 | stout 3483 | hands 3484 | front 3485 | masters 3486 | university 3487 | mode 3488 | crossing 3489 | shaking 3490 | upward 3491 | globe 3492 | theyd 3493 | mas 3494 | constitute 3495 | sands 3496 | measure 3497 | sandy 3498 | gallant 3499 | secretly 3500 | entertainment 3501 | confess 3502 | werden 3503 | wondrous 3504 | cause 3505 | alleged 3506 | attending 3507 | completely 3508 | princess 3509 | resumed 3510 | hostile 3511 | route 3512 | florida 3513 | keep 3514 | keen 3515 | mein 3516 | austin 3517 | vegetables 3518 | mankind 3519 | possessing 3520 | powerful 3521 | precisely 3522 | quality 3523 | management 3524 | bears 3525 | data 3526 | adopted 3527 | mal 3528 | attack 3529 | wrapped 3530 | vile 3531 | man 3532 | final 3533 | beard 3534 | punish 3535 | exactly 3536 | lists 3537 | overwhelming 3538 | neck 3539 | photograph 3540 | bei 3541 | ben 3542 | beg 3543 | submitted 3544 | bee 3545 | claim 3546 | ber 3547 | bare 3548 | providing 3549 | distinguished 3550 | bet 3551 | exhibit 3552 | enforced 3553 | lightly 3554 | julian 3555 | neer 3556 | horrors 3557 | torment 3558 | portrait 3559 | need 3560 | border 3561 | matin 3562 | sings 3563 | pursued 3564 | able 3565 | battles 3566 | instance 3567 | relatives 3568 | lectures 3569 | passionately 3570 | intentions 3571 | vengeance 3572 | connected 3573 | maintenant 3574 | tall 3575 | threats 3576 | awe 3577 | gallery 3578 | consequences 3579 | upset 3580 | astonishing 3581 | proceedings 3582 | construction 3583 | talk 3584 | affair 3585 | sent 3586 | anyway 3587 | soldiers 3588 | shoes 3589 | partners 3590 | envy 3591 | based 3592 | fuer 3593 | earned 3594 | hade 3595 | rash 3596 | employer 3597 | gutenbergnet 3598 | brighter 3599 | inherited 3600 | fuel 3601 | employed 3602 | infernal 3603 | gratify 3604 | righteousness 3605 | wishing 3606 | michigan 3607 | joint 3608 | trouver 3609 | legitimate 3610 | magistrate 3611 | leben 3612 | entity 3613 | ascended 3614 | endless 3615 | gray 3616 | evolution 3617 | places 3618 | tobacco 3619 | shy 3620 | contain 3621 | widow 3622 | prayers 3623 | pitch 3624 | humans 3625 | computer 3626 | powder 3627 | desperate 3628 | joys 3629 | effet 3630 | southward 3631 | tend 3632 | state 3633 | supernatural 3634 | tte 3635 | horrible 3636 | lui 3637 | prevailing 3638 | lun 3639 | tent 3640 | sole 3641 | constituted 3642 | importance 3643 | hurrying 3644 | interfere 3645 | spared 3646 | merry 3647 | police 3648 | precious 3649 | distribution 3650 | thumb 3651 | limits 3652 | career 3653 | minds 3654 | admit 3655 | poetical 3656 | ami 3657 | jersey 3658 | torn 3659 | cordial 3660 | tuesday 3661 | habitual 3662 | penetrating 3663 | invisible 3664 | kings 3665 | quit 3666 | tread 3667 | addition 3668 | thanked 3669 | cent 3670 | immense 3671 | slowly 3672 | treat 3673 | poet 3674 | shoulders 3675 | senses 3676 | corresponding 3677 | consequential 3678 | expenditure 3679 | smoking 3680 | novel 3681 | harder 3682 | owns 3683 | evelyn 3684 | surface 3685 | examined 3686 | swinging 3687 | cometh 3688 | capture 3689 | parte 3690 | parti 3691 | strange 3692 | speaker 3693 | party 3694 | http 3695 | appearances 3696 | effect 3697 | fierce 3698 | frequently 3699 | destruction 3700 | scarcely 3701 | reflection 3702 | didst 3703 | welt 3704 | deadly 3705 | restore 3706 | accurate 3707 | mistaken 3708 | sources 3709 | mistakes 3710 | distant 3711 | skill 3712 | dost 3713 | femme 3714 | extends 3715 | venture 3716 | warrant 3717 | indignation 3718 | kick 3719 | ample 3720 | utah 3721 | crushed 3722 | historic 3723 | burden 3724 | immediately 3725 | prominent 3726 | loss 3727 | lincoln 3728 | necessary 3729 | lost 3730 | alternatively 3731 | sagen 3732 | payments 3733 | martin 3734 | page 3735 | shed 3736 | glare 3737 | belonged 3738 | phenomena 3739 | library 3740 | motive 3741 | shew 3742 | repeat 3743 | shes 3744 | home 3745 | liking 3746 | proofs 3747 | zwei 3748 | broad 3749 | objected 3750 | delaware 3751 | soames 3752 | cradle 3753 | fanny 3754 | warranties 3755 | hinder 3756 | inaccurate 3757 | indicated 3758 | moins 3759 | journal 3760 | variation 3761 | instinct 3762 | choked 3763 | refuge 3764 | freedom 3765 | sinister 3766 | recognized 3767 | madame 3768 | onder 3769 | dominion 3770 | tongue 3771 | persuaded 3772 | equally 3773 | previously 3774 | washington 3775 | artists 3776 | additions 3777 | dug 3778 | doubtless 3779 | mississippi 3780 | rejoice 3781 | impatience 3782 | museum 3783 | imperial 3784 | inner 3785 | exposure 3786 | north 3787 | neutral 3788 | gain 3789 | courts 3790 | ear 3791 | flung 3792 | eat 3793 | cells 3794 | signed 3795 | carriage 3796 | converted 3797 | limit 3798 | empty 3799 | inquired 3800 | walter 3801 | celle 3802 | display 3803 | urging 3804 | chercher 3805 | universal 3806 | penny 3807 | kisses 3808 | mustnt 3809 | kissed 3810 | cavalry 3811 | functions 3812 | contest 3813 | offensive 3814 | westminster 3815 | star 3816 | fois 3817 | stay 3818 | friends 3819 | accidents 3820 | portion 3821 | elsie 3822 | determination 3823 | commencement 3824 | veux 3825 | aided 3826 | pardon 3827 | temperament 3828 | knelt 3829 | protest 3830 | consists 3831 | captain 3832 | calculate 3833 | aug 3834 | auf 3835 | sweetest 3836 | contained 3837 | presents 3838 | aus 3839 | trousers 3840 | teaching 3841 | sorry 3842 | sway 3843 | updated 3844 | rescue 3845 | void 3846 | stolen 3847 | voix 3848 | govern 3849 | affect 3850 | voir 3851 | vast 3852 | clothed 3853 | companies 3854 | solution 3855 | herbert 3856 | convenience 3857 | graces 3858 | clothes 3859 | favoured 3860 | quils 3861 | force 3862 | japanese 3863 | likely 3864 | subordinate 3865 | quill 3866 | nen 3867 | wreck 3868 | desirous 3869 | saved 3870 | ned 3871 | sait 3872 | asia 3873 | yonder 3874 | lights 3875 | sobre 3876 | new 3877 | net 3878 | med 3879 | deemed 3880 | men 3881 | drew 3882 | met 3883 | nicht 3884 | mes 3885 | mer 3886 | active 3887 | dry 3888 | luther 3889 | rests 3890 | piercing 3891 | credit 3892 | superstitious 3893 | permit 3894 | suitable 3895 | reste 3896 | eyebrows 3897 | reckoned 3898 | fantastic 3899 | plea 3900 | campaign 3901 | county 3902 | moral 3903 | guests 3904 | drowned 3905 | landscape 3906 | army 3907 | spaniards 3908 | arms 3909 | call 3910 | calm 3911 | recommend 3912 | majestys 3913 | survive 3914 | type 3915 | tell 3916 | lungs 3917 | expose 3918 | wars 3919 | warn 3920 | berlin 3921 | warm 3922 | ward 3923 | inhabited 3924 | room 3925 | semble 3926 | rights 3927 | roof 3928 | foliage 3929 | exceptions 3930 | akin 3931 | root 3932 | give 3933 | assent 3934 | honey 3935 | advancing 3936 | bonaparte 3937 | faults 3938 | amazing 3939 | messrs 3940 | answer 3941 | quoi 3942 | massive 3943 | reconciled 3944 | loyalty 3945 | coup 3946 | curiosity 3947 | president 3948 | purchase 3949 | attempt 3950 | third 3951 | assuredly 3952 | maintain 3953 | waited 3954 | operations 3955 | deck 3956 | wuz 3957 | murray 3958 | helena 3959 | ghastly 3960 | famille 3961 | wickedness 3962 | personal 3963 | crew 3964 | better 3965 | missionary 3966 | weeks 3967 | overcome 3968 | donors 3969 | combination 3970 | weakness 3971 | indulge 3972 | wenn 3973 | meat 3974 | brightness 3975 | aucun 3976 | arrested 3977 | lucy 3978 | leaned 3979 | went 3980 | side 3981 | bone 3982 | lofty 3983 | afforded 3984 | calmly 3985 | billion 3986 | principles 3987 | skins 3988 | milan 3989 | taught 3990 | jours 3991 | forgot 3992 | navy 3993 | lawyers 3994 | dawn 3995 | extract 3996 | contend 3997 | merchants 3998 | velvet 3999 | tales 4000 | content 4001 | fiery 4002 | affords 4003 | reader 4004 | surprise 4005 | turning 4006 | resume 4007 | revenge 4008 | ascending 4009 | bestow 4010 | struggle 4011 | egyptians 4012 | mistress 4013 | harriet 4014 | starts 4015 | messages 4016 | ist 4017 | signature 4018 | arrived 4019 | loud 4020 | einer 4021 | features 4022 | crooked 4023 | thereof 4024 | hook 4025 | einen 4026 | ditch 4027 | dwelt 4028 | girls 4029 | twisted 4030 | dwell 4031 | solemnly 4032 | alfred 4033 | occasioned 4034 | villages 4035 | helen 4036 | hadnt 4037 | requisite 4038 | peculiar 4039 | begins 4040 | distance 4041 | anxiety 4042 | cruelly 4043 | enabled 4044 | bitterness 4045 | preparation 4046 | matter 4047 | solomon 4048 | street 4049 | silly 4050 | lingering 4051 | spoiled 4052 | knights 4053 | sees 4054 | palace 4055 | modern 4056 | mind 4057 | mine 4058 | seed 4059 | seen 4060 | sounding 4061 | seek 4062 | tells 4063 | chest 4064 | niece 4065 | regular 4066 | marie 4067 | maria 4068 | don 4069 | observation 4070 | medical 4071 | dog 4072 | doe 4073 | points 4074 | principle 4075 | breathed 4076 | scotch 4077 | annoyed 4078 | reprinted 4079 | discontent 4080 | beaten 4081 | hunger 4082 | rapture 4083 | visitor 4084 | retire 4085 | ending 4086 | attempts 4087 | uneasiness 4088 | supplied 4089 | stepping 4090 | nevada 4091 | judges 4092 | dessen 4093 | explain 4094 | debts 4095 | folded 4096 | sugar 4097 | judged 4098 | folks 4099 | monuments 4100 | wearing 4101 | rejoicing 4102 | stop 4103 | perceive 4104 | coast 4105 | christopher 4106 | churches 4107 | comply 4108 | earl 4109 | earn 4110 | bar 4111 | bas 4112 | fields 4113 | bay 4114 | bag 4115 | bad 4116 | softly 4117 | architecture 4118 | ears 4119 | unworthy 4120 | reference 4121 | imitate 4122 | decided 4123 | subject 4124 | voyage 4125 | said 4126 | sail 4127 | sorte 4128 | artificial 4129 | filename 4130 | semblait 4131 | sais 4132 | sorts 4133 | warrior 4134 | lazy 4135 | wears 4136 | vows 4137 | ignorance 4138 | weary 4139 | vernon 4140 | cousin 4141 | picking 4142 | suggested 4143 | horsemen 4144 | uns 4145 | uncertainty 4146 | russia 4147 | una 4148 | und 4149 | une 4150 | distinction 4151 | contribution 4152 | confronted 4153 | ethel 4154 | appeared 4155 | height 4156 | illness 4157 | loaded 4158 | aller 4159 | proceeded 4160 | puts 4161 | basis 4162 | three 4163 | tiny 4164 | particulars 4165 | commission 4166 | recognised 4167 | interest 4168 | entered 4169 | lovely 4170 | threw 4171 | deeper 4172 | prosperous 4173 | quantities 4174 | sunshine 4175 | locations 4176 | generals 4177 | personally 4178 | regretted 4179 | exception 4180 | tastes 4181 | ugly 4182 | melted 4183 | suppose 4184 | tant 4185 | anchor 4186 | seven 4187 | cane 4188 | mexico 4189 | defeated 4190 | shame 4191 | cant 4192 | clinging 4193 | jest 4194 | disappear 4195 | grown 4196 | quand 4197 | belle 4198 | make 4199 | roland 4200 | unfortunate 4201 | vegetable 4202 | colonies 4203 | grows 4204 | entitled 4205 | meets 4206 | declaring 4207 | elle 4208 | delight 4209 | kin 4210 | vieux 4211 | supposing 4212 | jealous 4213 | opportunity 4214 | thoughts 4215 | butter 4216 | changes 4217 | youre 4218 | approbation 4219 | materials 4220 | qualities 4221 | claims 4222 | smoked 4223 | left 4224 | andere 4225 | consciousness 4226 | sentence 4227 | yea 4228 | andern 4229 | dearly 4230 | verses 4231 | identify 4232 | human 4233 | facts 4234 | yer 4235 | candidate 4236 | infinitely 4237 | regarded 4238 | character 4239 | magistrates 4240 | save 4241 | zou 4242 | sailors 4243 | background 4244 | destroy 4245 | erected 4246 | dreams 4247 | vanity 4248 | shoulder 4249 | dignity 4250 | patience 4251 | performing 4252 | unnecessary 4253 | notorious 4254 | dean 4255 | deal 4256 | deaf 4257 | dead 4258 | jupiter 4259 | paragraphs 4260 | dear 4261 | amiable 4262 | strife 4263 | dense 4264 | trace 4265 | distrust 4266 | joka 4267 | shakespeare 4268 | bold 4269 | burn 4270 | popular 4271 | bolt 4272 | keeper 4273 | bury 4274 | wept 4275 | conceal 4276 | magazine 4277 | afternoon 4278 | islands 4279 | marshal 4280 | zum 4281 | nerve 4282 | whats 4283 | amounted 4284 | intellectual 4285 | lies 4286 | doctrine 4287 | lieu 4288 | refined 4289 | frightened 4290 | hnen 4291 | annoyance 4292 | flying 4293 | chevalier 4294 | victorious 4295 | editor 4296 | fathers 4297 | offering 4298 | landing 4299 | ford 4300 | failure 4301 | surrender 4302 | assented 4303 | fort 4304 | protestant 4305 | detective 4306 | traits 4307 | harmony 4308 | attached 4309 | bounds 4310 | stages 4311 | temper 4312 | sticks 4313 | classic 4314 | petit 4315 | covers 4316 | drive 4317 | mois 4318 | awhile 4319 | handed 4320 | delivered 4321 | dies 4322 | felt 4323 | gradually 4324 | diet 4325 | dieu 4326 | journey 4327 | authorities 4328 | aware 4329 | died 4330 | jones 4331 | happening 4332 | apology 4333 | assume 4334 | daily 4335 | jacket 4336 | teeth 4337 | profits 4338 | shop 4339 | managed 4340 | relieve 4341 | eldest 4342 | laura 4343 | mild 4344 | mile 4345 | skin 4346 | mill 4347 | abundant 4348 | milk 4349 | depend 4350 | fancies 4351 | elizabeth 4352 | father 4353 | answered 4354 | praised 4355 | petersburg 4356 | marks 4357 | suffered 4358 | fancied 4359 | shoot 4360 | string 4361 | advised 4362 | pious 4363 | governments 4364 | dim 4365 | din 4366 | banished 4367 | excellency 4368 | die 4369 | dig 4370 | travels 4371 | excellence 4372 | dit 4373 | round 4374 | dir 4375 | dis 4376 | ville 4377 | talked 4378 | fearing 4379 | dealing 4380 | wherefore 4381 | eating 4382 | pulpit 4383 | adds 4384 | heres 4385 | favour 4386 | suspect 4387 | international 4388 | filled 4389 | guardian 4390 | clerk 4391 | french 4392 | superstition 4393 | stem 4394 | wait 4395 | box 4396 | boy 4397 | canadian 4398 | shift 4399 | bot 4400 | bow 4401 | suggestion 4402 | bob 4403 | quarrel 4404 | hither 4405 | dick 4406 | elect 4407 | savoir 4408 | merely 4409 | withal 4410 | verge 4411 | sympathetic 4412 | troops 4413 | sake 4414 | ingenuity 4415 | visit 4416 | javais 4417 | france 4418 | francs 4419 | vous 4420 | sharing 4421 | ook 4422 | rigid 4423 | orator 4424 | effort 4425 | fly 4426 | soul 4427 | soup 4428 | sous 4429 | growing 4430 | making 4431 | arrive 4432 | fld 4433 | deceased 4434 | nearest 4435 | crazy 4436 | anne 4437 | confused 4438 | agent 4439 | council 4440 | pink 4441 | rays 4442 | pine 4443 | chemical 4444 | till 4445 | sunday 4446 | sword 4447 | swore 4448 | sworn 4449 | pint 4450 | map 4451 | staying 4452 | critics 4453 | max 4454 | mad 4455 | mai 4456 | destructive 4457 | grow 4458 | recovery 4459 | waist 4460 | johnson 4461 | avant 4462 | tale 4463 | inhabitants 4464 | jail 4465 | silence 4466 | deceive 4467 | african 4468 | basket 4469 | nous 4470 | gesture 4471 | shield 4472 | josephine 4473 | gradual 4474 | pointed 4475 | seizing 4476 | immer 4477 | terrace 4478 | shake 4479 | argued 4480 | group 4481 | thank 4482 | mais 4483 | interesting 4484 | maid 4485 | listing 4486 | policy 4487 | mail 4488 | main 4489 | texas 4490 | views 4491 | sooner 4492 | lunch 4493 | touching 4494 | killed 4495 | possess 4496 | feverish 4497 | resignation 4498 | arrows 4499 | peasant 4500 | careless 4501 | rock 4502 | elephants 4503 | treacherous 4504 | richly 4505 | preaching 4506 | girl 4507 | homme 4508 | canada 4509 | living 4510 | jackson 4511 | greeks 4512 | interference 4513 | miles 4514 | emerged 4515 | dutch 4516 | correct 4517 | assurance 4518 | monster 4519 | auch 4520 | romans 4521 | california 4522 | ebcdic 4523 | keith 4524 | gott 4525 | advance 4526 | language 4527 | ministry 4528 | waiter 4529 | contented 4530 | thing 4531 | thine 4532 | invalidity 4533 | comte 4534 | think 4535 | frequent 4536 | first 4537 | cheese 4538 | dwelling 4539 | rachel 4540 | proofreading 4541 | americans 4542 | fast 4543 | suspended 4544 | carry 4545 | sounds 4546 | rome 4547 | discharged 4548 | little 4549 | lap 4550 | slept 4551 | laquelle 4552 | plains 4553 | escort 4554 | cetait 4555 | speaking 4556 | meme 4557 | eyes 4558 | continuous 4559 | accurately 4560 | undoubtedly 4561 | sailing 4562 | browning 4563 | protected 4564 | werd 4565 | gigantic 4566 | proofread 4567 | gathering 4568 | marrying 4569 | dass 4570 | voices 4571 | dash 4572 | winding 4573 | conspiracy 4574 | spectacle 4575 | occupied 4576 | fortified 4577 | clung 4578 | efficient 4579 | answering 4580 | shocked 4581 | wretch 4582 | interior 4583 | performance 4584 | channel 4585 | jungle 4586 | flattered 4587 | pain 4588 | norman 4589 | theatre 4590 | normal 4591 | track 4592 | paid 4593 | roused 4594 | assault 4595 | sheets 4596 | tract 4597 | complaints 4598 | conspicuous 4599 | queens 4600 | surprising 4601 | fills 4602 | fille 4603 | stockings 4604 | precise 4605 | shot 4606 | show 4607 | contemporary 4608 | supposition 4609 | representatives 4610 | threshold 4611 | corner 4612 | curled 4613 | dice 4614 | stormy 4615 | dich 4616 | treasure 4617 | storms 4618 | black 4619 | ceremonies 4620 | treasury 4621 | enthusiasm 4622 | get 4623 | hailed 4624 | unconsciously 4625 | distinctly 4626 | gen 4627 | secondary 4628 | nouveau 4629 | beseech 4630 | yield 4631 | morning 4632 | stupid 4633 | finishing 4634 | communicated 4635 | silently 4636 | whispered 4637 | declared 4638 | honesty 4639 | seas 4640 | eighteenth 4641 | seat 4642 | relative 4643 | doings 4644 | declares 4645 | seal 4646 | wonder 4647 | ornament 4648 | boundaries 4649 | diamonds 4650 | cautiously 4651 | reading 4652 | checks 4653 | deletions 4654 | august 4655 | parent 4656 | killing 4657 | countenance 4658 | dates 4659 | resist 4660 | tour 4661 | tous 4662 | tout 4663 | disappointment 4664 | accusation 4665 | slain 4666 | stretched 4667 | comprehend 4668 | considering 4669 | sensible 4670 | unusual 4671 | capable 4672 | lorsque 4673 | mark 4674 | mars 4675 | borders 4676 | mary 4677 | educated 4678 | offered 4679 | dramatic 4680 | wake 4681 | declaration 4682 | quatre 4683 | sound 4684 | slumber 4685 | promising 4686 | awakened 4687 | antony 4688 | margin 4689 | characteristics 4690 | sincere 4691 | sleeping 4692 | strain 4693 | pressing 4694 | wisely 4695 | movements 4696 | bags 4697 | different 4698 | pas 4699 | harsh 4700 | doctor 4701 | pay 4702 | paa 4703 | acquaintances 4704 | speech 4705 | arguments 4706 | stepped 4707 | pan 4708 | dated 4709 | oil 4710 | assist 4711 | companion 4712 | running 4713 | sullen 4714 | climbing 4715 | totally 4716 | largely 4717 | roughly 4718 | lequel 4719 | rains 4720 | bottle 4721 | amazed 4722 | consisted 4723 | gates 4724 | deze 4725 | money 4726 | aspect 4727 | wifes 4728 | sprang 4729 | quelle 4730 | nick 4731 | pile 4732 | astonishment 4733 | extensive 4734 | grip 4735 | mot 4736 | moi 4737 | mon 4738 | mob 4739 | railroad 4740 | blankets 4741 | grim 4742 | acquainted 4743 | adams 4744 | maintained 4745 | serves 4746 | lightning 4747 | facing 4748 | chamber 4749 | audience 4750 | laughing 4751 | served 4752 | passionate 4753 | robbers 4754 | fulfil 4755 | jews 4756 | imprisonment 4757 | pronounce 4758 | naar 4759 | specified 4760 | images 4761 | sommes 4762 | joan 4763 | gross 4764 | livres 4765 | colonial 4766 | footing 4767 | meinen 4768 | meiner 4769 | critical 4770 | expressing 4771 | moderate 4772 | knife 4773 | mare 4774 | seconds 4775 | notable 4776 | arts 4777 | broken 4778 | pretended 4779 | refers 4780 | regulations 4781 | stations 4782 | roar 4783 | island 4784 | violence 4785 | practical 4786 | pockets 4787 | youve 4788 | mixed 4789 | notifies 4790 | road 4791 | quietly 4792 | lands 4793 | fertile 4794 | whites 4795 | spreading 4796 | skilled 4797 | blessed 4798 | empress 4799 | references 4800 | dreaming 4801 | jerusalem 4802 | shells 4803 | distracted 4804 | brute 4805 | lions 4806 | decisive 4807 | lodgings 4808 | strikes 4809 | downstairs 4810 | arranged 4811 | romantic 4812 | affection 4813 | fils 4814 | celestial 4815 | hated 4816 | deer 4817 | deep 4818 | fellow 4819 | imagination 4820 | examine 4821 | deem 4822 | pourquoi 4823 | grasped 4824 | file 4825 | deed 4826 | fill 4827 | tedious 4828 | selfish 4829 | gbnewby 4830 | sufferings 4831 | repent 4832 | field 4833 | shelter 4834 | brandy 4835 | important 4836 | decorated 4837 | prudent 4838 | resembled 4839 | remote 4840 | resembles 4841 | resolution 4842 | represent 4843 | needful 4844 | forget 4845 | founder 4846 | forbidden 4847 | dollar 4848 | forty 4849 | founded 4850 | sunk 4851 | vessels 4852 | invariably 4853 | talks 4854 | expressions 4855 | children 4856 | emily 4857 | shattered 4858 | dieses 4859 | preserved 4860 | tranquillity 4861 | crimson 4862 | enjoying 4863 | hideous 4864 | etaient 4865 | parcel 4866 | sitting 4867 | lain 4868 | einmal 4869 | fall 4870 | winning 4871 | difference 4872 | washing 4873 | worden 4874 | benevolent 4875 | applicable 4876 | neighborhood 4877 | titles 4878 | quebec 4879 | lawyer 4880 | ribbon 4881 | creatures 4882 | ohne 4883 | defence 4884 | stood 4885 | sweetly 4886 | tribute 4887 | everlasting 4888 | public 4889 | movement 4890 | compilation 4891 | mule 4892 | favourable 4893 | disastrous 4894 | mourning 4895 | christs 4896 | speeches 4897 | bible 4898 | stretching 4899 | published 4900 | mentions 4901 | narrow 4902 | alexandria 4903 | africa 4904 | sanction 4905 | establish 4906 | readily 4907 | eye 4908 | distinct 4909 | wiped 4910 | two 4911 | error 4912 | cultivation 4913 | endowed 4914 | rubbing 4915 | sondern 4916 | diamond 4917 | purse 4918 | leonard 4919 | landed 4920 | particular 4921 | nineteen 4922 | town 4923 | hour 4924 | middle 4925 | recall 4926 | der 4927 | des 4928 | det 4929 | dew 4930 | guards 4931 | remain 4932 | paragraph 4933 | del 4934 | dem 4935 | den 4936 | abandon 4937 | dec 4938 | marble 4939 | ladys 4940 | deg 4941 | compare 4942 | bravely 4943 | gravely 4944 | share 4945 | sphere 4946 | breathing 4947 | attain 4948 | purchased 4949 | sharp 4950 | robinson 4951 | needs 4952 | awkward 4953 | acts 4954 | sacred 4955 | stir 4956 | charms 4957 | petite 4958 | kitty 4959 | advice 4960 | par 4961 | questioning 4962 | petits 4963 | blood 4964 | coming 4965 | wave 4966 | bloom 4967 | response 4968 | trois 4969 | crowded 4970 | coat 4971 | bathed 4972 | deserted 4973 | coal 4974 | responsibility 4975 | skilful 4976 | pleasure 4977 | playing 4978 | infant 4979 | rounded 4980 | hypertext 4981 | appeals 4982 | existence 4983 | suffer 4984 | surtout 4985 | possessions 4986 | forthwith 4987 | bosom 4988 | late 4989 | detected 4990 | edmund 4991 | good 4992 | seeking 4993 | males 4994 | prejudices 4995 | encouraging 4996 | obeyed 4997 | walls 4998 | compound 4999 | oxford 5000 | detach 5001 | struggling 5002 | association 5003 | mystery 5004 | easily 5005 | porte 5006 | ashes 5007 | token 5008 | habits 5009 | repeating 5010 | ports 5011 | exquisite 5012 | mercy 5013 | harm 5014 | mental 5015 | house 5016 | energy 5017 | hard 5018 | monks 5019 | extended 5020 | countrymen 5021 | fist 5022 | hart 5023 | comic 5024 | flower 5025 | childish 5026 | projected 5027 | acting 5028 | flowed 5029 | print 5030 | pathetic 5031 | circumstance 5032 | pleasant 5033 | difficulty 5034 | members 5035 | mme 5036 | beginning 5037 | benefits 5038 | prophet 5039 | computers 5040 | conducted 5041 | copper 5042 | dont 5043 | nach 5044 | instances 5045 | donc 5046 | done 5047 | embraced 5048 | wages 5049 | heights 5050 | twenty 5051 | entreated 5052 | redistributing 5053 | assumption 5054 | statement 5055 | beloved 5056 | muscles 5057 | travail 5058 | para 5059 | needle 5060 | park 5061 | sensation 5062 | favorable 5063 | doctors 5064 | lhomme 5065 | prodigious 5066 | believe 5067 | compliments 5068 | youth 5069 | contrary 5070 | supposed 5071 | treated 5072 | declare 5073 | ages 5074 | ardent 5075 | aged 5076 | orders 5077 | paths 5078 | built 5079 | dancing 5080 | couch 5081 | majority 5082 | caesar 5083 | build 5084 | obviously 5085 | province 5086 | serene 5087 | carolina 5088 | eggs 5089 | depths 5090 | charm 5091 | significant 5092 | services 5093 | extremely 5094 | meine 5095 | charitable 5096 | reflections 5097 | weigh 5098 | nobility 5099 | joining 5100 | thomas 5101 | rebels 5102 | obligations 5103 | swelling 5104 | scattered 5105 | noblest 5106 | relation 5107 | carefully 5108 | fine 5109 | giant 5110 | depended 5111 | nervous 5112 | ruin 5113 | distributed 5114 | unhappy 5115 | weve 5116 | dust 5117 | permission 5118 | luke 5119 | express 5120 | courage 5121 | breast 5122 | silk 5123 | sill 5124 | resolve 5125 | dante 5126 | remove 5127 | common 5128 | gospel 5129 | devils 5130 | tended 5131 | lion 5132 | individual 5133 | manly 5134 | surrendered 5135 | tender 5136 | feared 5137 | degree 5138 | expert 5139 | visiting 5140 | please 5141 | smallest 5142 | burned 5143 | statesmen 5144 | iron 5145 | reverse 5146 | sultan 5147 | solely 5148 | annual 5149 | foreign 5150 | mean 5151 | afar 5152 | cakes 5153 | danced 5154 | point 5155 | simple 5156 | tennessee 5157 | simply 5158 | asserted 5159 | expensive 5160 | patiently 5161 | raise 5162 | smote 5163 | create 5164 | faithfully 5165 | dropping 5166 | ireland 5167 | meeting 5168 | gay 5169 | gas 5170 | gar 5171 | understand 5172 | prices 5173 | resisted 5174 | fut 5175 | fur 5176 | grains 5177 | raw 5178 | solid 5179 | bill 5180 | elections 5181 | replaced 5182 | fun 5183 | portugal 5184 | century 5185 | cents 5186 | violently 5187 | encountered 5188 | recht 5189 | italy 5190 | puis 5191 | discourse 5192 | copying 5193 | proved 5194 | ruth 5195 | development 5196 | keys 5197 | yesterday 5198 | solicited 5199 | husbands 5200 | moment 5201 | purpose 5202 | genuine 5203 | timid 5204 | travers 5205 | task 5206 | entre 5207 | spent 5208 | morrow 5209 | flags 5210 | withdraw 5211 | toil 5212 | organization 5213 | alors 5214 | isolated 5215 | profoundly 5216 | shape 5217 | openly 5218 | elegance 5219 | alternative 5220 | timber 5221 | letting 5222 | cut 5223 | cup 5224 | disappointed 5225 | alternate 5226 | shouting 5227 | deliberately 5228 | cum 5229 | excited 5230 | bin 5231 | bij 5232 | big 5233 | bid 5234 | saluted 5235 | matters 5236 | messengers 5237 | foreigners 5238 | bit 5239 | bis 5240 | knock 5241 | follows 5242 | addressed 5243 | foolish 5244 | valleys 5245 | vols 5246 | absolutely 5247 | obliged 5248 | magnificent 5249 | back 5250 | strongest 5251 | examples 5252 | ornaments 5253 | mirror 5254 | candle 5255 | pronounced 5256 | acquaintance 5257 | pet 5258 | peu 5259 | depuis 5260 | pen 5261 | nose 5262 | patient 5263 | remembered 5264 | oer 5265 | peculiarly 5266 | continuing 5267 | virtues 5268 | goods 5269 | drama 5270 | piled 5271 | consequently 5272 | jimmy 5273 | framed 5274 | phase 5275 | remembrance 5276 | lesson 5277 | errand 5278 | germans 5279 | forward 5280 | fer 5281 | bored 5282 | invite 5283 | ascend 5284 | hoped 5285 | boys 5286 | hopes 5287 | directed 5288 | sort 5289 | constant 5290 | expedition 5291 | stripped 5292 | deprive 5293 | scarlet 5294 | single 5295 | cure 5296 | dragging 5297 | prevail 5298 | brethren 5299 | theyll 5300 | excused 5301 | elles 5302 | eller 5303 | ellen 5304 | explaining 5305 | cellar 5306 | lend 5307 | favourite 5308 | impress 5309 | papa 5310 | luxurious 5311 | restoration 5312 | utterly 5313 | lent 5314 | neednt 5315 | desert 5316 | statesman 5317 | confirm 5318 | admiring 5319 | cooked 5320 | ascertained 5321 | implied 5322 | presenting 5323 | noon 5324 | hint 5325 | cynthia 5326 | vicious 5327 | compose 5328 | graves 5329 | literary 5330 | blaze 5331 | pleasing 5332 | brigade 5333 | presently 5334 | putting 5335 | accuse 5336 | surgeon 5337 | arrange 5338 | yeux 5339 | respectful 5340 | knight 5341 | shock 5342 | havent 5343 | bleeding 5344 | crop 5345 | rivers 5346 | uncomfortable 5347 | subtle 5348 | depression 5349 | doctrines 5350 | power 5351 | chicago 5352 | giving 5353 | pipes 5354 | practices 5355 | access 5356 | pleading 5357 | exercise 5358 | body 5359 | exchange 5360 | beasts 5361 | sins 5362 | objects 5363 | healing 5364 | sing 5365 | sind 5366 | extreme 5367 | remark 5368 | talent 5369 | poured 5370 | principally 5371 | climb 5372 | honor 5373 | composed 5374 | named 5375 | private 5376 | gordon 5377 | privately 5378 | zijn 5379 | limb 5380 | scandal 5381 | resolutions 5382 | sermon 5383 | che 5384 | readable 5385 | butler 5386 | paroles 5387 | trail 5388 | train 5389 | ashamed 5390 | tearing 5391 | harvest 5392 | hints 5393 | sont 5394 | account 5395 | embarked 5396 | gabriel 5397 | obvious 5398 | praise 5399 | closing 5400 | didnt 5401 | fetch 5402 | reserved 5403 | proportions 5404 | infantry 5405 | bones 5406 | contempt 5407 | native 5408 | lamb 5409 | daring 5410 | democracy 5411 | lame 5412 | holds 5413 | hampshire 5414 | regions 5415 | lamp 5416 | forest 5417 | souvent 5418 | stock 5419 | buildings 5420 | waters 5421 | philosophy 5422 | collection 5423 | frau 5424 | leisure 5425 | trifling 5426 | bind 5427 | lines 5428 | trembling 5429 | linen 5430 | chief 5431 | furious 5432 | subsequently 5433 | lined 5434 | furnish 5435 | despite 5436 | horns 5437 | flattering 5438 | agricultural 5439 | thyself 5440 | bunch 5441 | bridges 5442 | revived 5443 | whereof 5444 | acres 5445 | willing 5446 | eux 5447 | latitude 5448 | eut 5449 | criminal 5450 | greater 5451 | descendants 5452 | dan 5453 | spell 5454 | dat 5455 | mention 5456 | cutting 5457 | das 5458 | kindness 5459 | day 5460 | strive 5461 | february 5462 | thrill 5463 | warned 5464 | radiant 5465 | freshness 5466 | blazing 5467 | morris 5468 | gazing 5469 | strip 5470 | sexual 5471 | defend 5472 | rev 5473 | wholly 5474 | waar 5475 | mate 5476 | messenger 5477 | lecture 5478 | announced 5479 | harold 5480 | approached 5481 | frank 5482 | fourteen 5483 | approaches 5484 | que 5485 | qui 5486 | allies 5487 | deprived 5488 | endeavouring 5489 | allied 5490 | mortal 5491 | retain 5492 | sorrowful 5493 | south 5494 | finest 5495 | reaches 5496 | embarrassed 5497 | improvements 5498 | reached 5499 | ancient 5500 | sadly 5501 | vulgar 5502 | maidens 5503 | cabin 5504 | sixteenth 5505 | completed 5506 | acquire 5507 | dreary 5508 | negro 5509 | slopes 5510 | loved 5511 | flashed 5512 | compensation 5513 | loves 5514 | lover 5515 | visited 5516 | seinem 5517 | seinen 5518 | comfortable 5519 | tide 5520 | comfortably 5521 | throat 5522 | apparently 5523 | seiner 5524 | mij 5525 | min 5526 | gravity 5527 | mig 5528 | mix 5529 | concerns 5530 | provoked 5531 | mis 5532 | mir 5533 | mit 5534 | savages 5535 | procure 5536 | eight 5537 | preliminary 5538 | prisoner 5539 | sally 5540 | payment 5541 | enthusiastic 5542 | gather 5543 | request 5544 | disease 5545 | absurd 5546 | occasion 5547 | charley 5548 | selection 5549 | text 5550 | supported 5551 | traitor 5552 | staff 5553 | knowledge 5554 | bernard 5555 | satan 5556 | inferior 5557 | regularly 5558 | vater 5559 | beat 5560 | beau 5561 | bear 5562 | beam 5563 | perfection 5564 | organ 5565 | strove 5566 | cicero 5567 | calling 5568 | fixed 5569 | madam 5570 | exists 5571 | national 5572 | pouvait 5573 | intensity 5574 | greece 5575 | interview 5576 | turks 5577 | reform 5578 | pattern 5579 | ralph 5580 | difficulties 5581 | progress 5582 | boundary 5583 | admiration 5584 | janet 5585 | sorrow 5586 | monarchy 5587 | deliver 5588 | firmness 5589 | instant 5590 | joke 5591 | taking 5592 | equal 5593 | attributed 5594 | fulfilled 5595 | assure 5596 | swim 5597 | conquered 5598 | swallow 5599 | glorious 5600 | devout 5601 | comment 5602 | vent 5603 | statues 5604 | laugh 5605 | manhood 5606 | pouring 5607 | johnny 5608 | tremendous 5609 | copies 5610 | gaze 5611 | curtain 5612 | proposal 5613 | arises 5614 | perplexed 5615 | wurde 5616 | foes 5617 | climate 5618 | bulk 5619 | finished 5620 | tenderly 5621 | angles 5622 | bull 5623 | general 5624 | napoleon 5625 | volunteer 5626 | homer 5627 | divisions 5628 | plain 5629 | appearance 5630 | value 5631 | uit 5632 | helped 5633 | arrangements 5634 | claimed 5635 | partner 5636 | arabic 5637 | tumbled 5638 | goddess 5639 | administration 5640 | injured 5641 | material 5642 | novels 5643 | sisters 5644 | judgment 5645 | scholars 5646 | numbered 5647 | recourse 5648 | center 5649 | weapon 5650 | antonio 5651 | thought 5652 | exceedingly 5653 | sets 5654 | tasted 5655 | position 5656 | arising 5657 | latest 5658 | stores 5659 | executive 5660 | domestic 5661 | stored 5662 | seats 5663 | dakota 5664 | protecting 5665 | adv 5666 | flee 5667 | onward 5668 | lake 5669 | bench 5670 | gleich 5671 | add 5672 | citizen 5673 | adj 5674 | ought 5675 | resolved 5676 | articles 5677 | elapsed 5678 | royalty 5679 | like 5680 | success 5681 | sofa 5682 | admitted 5683 | heed 5684 | works 5685 | soft 5686 | heel 5687 | italian 5688 | accessible 5689 | classical 5690 | authority 5691 | hair 5692 | convey 5693 | proper 5694 | happens 5695 | est 5696 | esq 5697 | corpse 5698 | students 5699 | discretion 5700 | assuming 5701 | chains 5702 | forbid 5703 | pepper 5704 | noise 5705 | slight 5706 | lieutenant 5707 | host 5708 | worthy 5709 | snapped 5710 | noisy 5711 | judging 5712 | actual 5713 | boards 5714 | influences 5715 | withdrew 5716 | coachman 5717 | blessings 5718 | tomb 5719 | introduced 5720 | rendered 5721 | childrens 5722 | sidenote 5723 | guard 5724 | doesnt 5725 | esteem 5726 | female 5727 | ridge 5728 | rushed 5729 | toutes 5730 | outline 5731 | reigned 5732 | inasmuch 5733 | bees 5734 | mijn 5735 | ivory 5736 | buy 5737 | preparations 5738 | reminds 5739 | repeated 5740 | plague 5741 | editing 5742 | partially 5743 | wise 5744 | princes 5745 | glory 5746 | dangerous 5747 | thrice 5748 | minutes 5749 | sein 5750 | supreme 5751 | pin 5752 | deaths 5753 | whisper 5754 | pie 5755 | pig 5756 | periods 5757 | shooting 5758 | pit 5759 | proceeds 5760 | corporation 5761 | oak 5762 | detail 5763 | special 5764 | granite 5765 | dresses 5766 | nelson 5767 | draught 5768 | bundle 5769 | shrank 5770 | christians 5771 | goin 5772 | stirred 5773 | starting 5774 | pupil 5775 | parole 5776 | limited 5777 | hats 5778 | comparatively 5779 | joshua 5780 | veut 5781 | hath 5782 | sleep 5783 | appetite 5784 | hate 5785 | assembled 5786 | feeding 5787 | patches 5788 | paris 5789 | whatsoever 5790 | pride 5791 | merchant 5792 | conjecture 5793 | exempt 5794 | risk 5795 | rise 5796 | procession 5797 | jack 5798 | softened 5799 | encounter 5800 | school 5801 | conceive 5802 | relics 5803 | venus 5804 | enjoy 5805 | parted 5806 | leaders 5807 | consistent 5808 | feathers 5809 | direct 5810 | surrounding 5811 | louder 5812 | estimated 5813 | expressive 5814 | shining 5815 | blue 5816 | hide 5817 | christ 5818 | solemn 5819 | selected 5820 | revolver 5821 | poison 5822 | sung 5823 | kun 5824 | conduct 5825 | supplies 5826 | seeks 5827 | kicked 5828 | insolent 5829 | molly 5830 | stared 5831 | hundreds 5832 | studio 5833 | humility 5834 | represented 5835 | path 5836 | voice 5837 | leaves 5838 | ridicule 5839 | disclaims 5840 | chateau 5841 | della 5842 | settled 5843 | punishment 5844 | ventured 5845 | straw 5846 | julia 5847 | feelings 5848 | sorrows 5849 | visible 5850 | hospital 5851 | distributing 5852 | assez 5853 | breathe 5854 | barbarous 5855 | grief 5856 | connecticut 5857 | excellent 5858 | outdated 5859 | abundance 5860 | join 5861 | henri 5862 | entertained 5863 | joie 5864 | henry 5865 | ernest 5866 | fortress 5867 | shook 5868 | inscription 5869 | estate 5870 | joyous 5871 | diminished 5872 | cong 5873 | comparative 5874 | times 5875 | attract 5876 | ceremony 5877 | end 5878 | eng 5879 | returning 5880 | writers 5881 | gate 5882 | badly 5883 | description 5884 | mouths 5885 | mess 5886 | delicacy 5887 | parallel 5888 | splendid 5889 | amid 5890 | acknowledged 5891 | patent 5892 | ultimate 5893 | enter 5894 | aloud 5895 | niin 5896 | amis 5897 | executed 5898 | interpretation 5899 | prussia 5900 | nouvelle 5901 | london 5902 | oven 5903 | glances 5904 | edith 5905 | expectations 5906 | writing 5907 | destroyed 5908 | tramp 5909 | glanced 5910 | eugene 5911 | iowa 5912 | diseases 5913 | prevented 5914 | plates 5915 | echo 5916 | shadows 5917 | gloom 5918 | netherlands 5919 | potatoes 5920 | shadowy 5921 | mothers 5922 | choir 5923 | filling 5924 | victory 5925 | fitness 5926 | waving 5927 | lasting 5928 | diana 5929 | autre 5930 | hanged 5931 | ghosts 5932 | saturday 5933 | lair 5934 | driving 5935 | god 5936 | washed 5937 | laid 5938 | heavenly 5939 | got 5940 | newly 5941 | independence 5942 | perception 5943 | associate 5944 | icke 5945 | rail 5946 | eternal 5947 | free 5948 | fred 5949 | formation 5950 | rain 5951 | wanted 5952 | jeune 5953 | days 5954 | hopeless 5955 | rang 5956 | industrial 5957 | primary 5958 | rank 5959 | hearing 5960 | philosophical 5961 | relations 5962 | awoke 5963 | sober 5964 | top 5965 | tot 5966 | fiction 5967 | toi 5968 | ton 5969 | wildly 5970 | unbroken 5971 | toe 5972 | consented 5973 | curtains 5974 | ceiling 5975 | murder 5976 | serve 5977 | beiden 5978 | western 5979 | ihrem 5980 | brushed 5981 | perfectly 5982 | frankly 5983 | fairest 5984 | classes 5985 | flame 5986 | mirth 5987 | countess 5988 | displays 5989 | bridge 5990 | fashion 5991 | handkerchief 5992 | ran 5993 | talking 5994 | ray 5995 | thoroughly 5996 | snow 5997 | thorough 5998 | laughed 5999 | rider 6000 | detained 6001 | plenty 6002 | commanding 6003 | coin 6004 | alabama 6005 | parting 6006 | glow 6007 | metal 6008 | treaty 6009 | orderly 6010 | reputation 6011 | enterprise 6012 | entertaining 6013 | constance 6014 | agnes 6015 | chariot 6016 | peine 6017 | inspire 6018 | pope 6019 | coeur 6020 | queen 6021 | sage 6022 | colors 6023 | queer 6024 | earth 6025 | appealed 6026 | och 6027 | spite 6028 | peasants 6029 | claude 6030 | commence 6031 | disgust 6032 | cependant 6033 | lodge 6034 | announce 6035 | scripture 6036 | oct 6037 | borrowed 6038 | mixture 6039 | cecilia 6040 | hostility 6041 | watch 6042 | geen 6043 | wedding 6044 | report 6045 | aught 6046 | countries 6047 | anxiously 6048 | twice 6049 | shots 6050 | ruins 6051 | thanks 6052 | fragrant 6053 | swept 6054 | habit 6055 | liquor 6056 | taient 6057 | nur 6058 | nun 6059 | bed 6060 | corrupt 6061 | aujourdhui 6062 | capacity 6063 | temptation 6064 | muy 6065 | continually 6066 | grandmother 6067 | mud 6068 | finger 6069 | approach 6070 | discovery 6071 | confusion 6072 | weak 6073 | wear 6074 | news 6075 | improve 6076 | faced 6077 | protect 6078 | accused 6079 | irregular 6080 | fault 6081 | pglaforg 6082 | games 6083 | faces 6084 | expense 6085 | vexed 6086 | majestic 6087 | trust 6088 | conference 6089 | beef 6090 | ropes 6091 | quickly 6092 | confident 6093 | beer 6094 | spread 6095 | communion 6096 | expected 6097 | search 6098 | uncommon 6099 | craft 6100 | catch 6101 | intending 6102 | apprehension 6103 | kentucky 6104 | lesser 6105 | teachers 6106 | stopping 6107 | natives 6108 | expenses 6109 | brutal 6110 | containing 6111 | suggest 6112 | wound 6113 | forehead 6114 | complex 6115 | advances 6116 | misery 6117 | greeted 6118 | characters 6119 | insisted 6120 | hearth 6121 | shortly 6122 | charlie 6123 | possessed 6124 | ocean 6125 | hearty 6126 | greatest 6127 | incapable 6128 | mother 6129 | hearts 6130 | jean 6131 | possesses 6132 | leagues 6133 | departed 6134 | proposed 6135 | campbell 6136 | followed 6137 | vices 6138 | tolerably 6139 | explanatory 6140 | enfin 6141 | pitiful 6142 | humanity 6143 | gave 6144 | casting 6145 | unter 6146 | bands 6147 | breaks 6148 | descending 6149 | afore 6150 | judge 6151 | burnt 6152 | advanced 6153 | apart 6154 | appearing 6155 | gift 6156 | zeal 6157 | hunt 6158 | specific 6159 | renamed 6160 | offices 6161 | officer 6162 | arbitrary 6163 | hung 6164 | gifted 6165 | successfully 6166 | proudly 6167 | viz 6168 | clubs 6169 | election 6170 | displeasure 6171 | escape 6172 | precautions 6173 | intellect 6174 | rapidity 6175 | nobleman 6176 | ici 6177 | ich 6178 | proceeding 6179 | rhine 6180 | armed 6181 | companions 6182 | ice 6183 | christmas 6184 | splendor 6185 | cord 6186 | dropped 6187 | corn 6188 | disappeared 6189 | lamps 6190 | permitted 6191 | chapter 6192 | limitation 6193 | attacks 6194 | dinner 6195 | montana 6196 | plus 6197 | steadily 6198 | efforts 6199 | sept 6200 | voulu 6201 | duke 6202 | primitive 6203 | aber 6204 | presence 6205 | civil 6206 | obtaining 6207 | bath 6208 | finely 6209 | existed 6210 | rely 6211 | git 6212 | indispensable 6213 | personage 6214 | sunlight 6215 | virgin 6216 | anderson 6217 | fought 6218 | naught 6219 | gij 6220 | head 6221 | medium 6222 | attempted 6223 | differences 6224 | payable 6225 | heat 6226 | hear 6227 | heap 6228 | sustained 6229 | removed 6230 | nodded 6231 | counsel 6232 | portions 6233 | versions 6234 | pseud 6235 | ruined 6236 | fury 6237 | suspicions 6238 | shines 6239 | trip 6240 | constructed 6241 | willingly 6242 | looked 6243 | faithful 6244 | tip 6245 | tis 6246 | til 6247 | tin 6248 | setting 6249 | papers 6250 | tie 6251 | vanished 6252 | realize 6253 | eternity 6254 | picture 6255 | preceding 6256 | discharge 6257 | flushed 6258 | doute 6259 | younger 6260 | longer 6261 | bullet 6262 | vigorously 6263 | changed 6264 | longed 6265 | remarked 6266 | serious 6267 | intimacy 6268 | backward 6269 | neighbors 6270 | roi 6271 | coach 6272 | remarkable 6273 | impression 6274 | rob 6275 | varying 6276 | rod 6277 | leads 6278 | roy 6279 | remarkably 6280 | displaying 6281 | row 6282 | passage 6283 | charge 6284 | trustees 6285 | promoting 6286 | discovering 6287 | stove 6288 | advantage 6289 | exalted 6290 | congregation 6291 | cook 6292 | cool 6293 | clouds 6294 | impressive 6295 | level 6296 | posts 6297 | brother 6298 | standards 6299 | quick 6300 | milton 6301 | says 6302 | plu 6303 | inland 6304 | dried 6305 | passe 6306 | port 6307 | substitute 6308 | irritated 6309 | hymn 6310 | stands 6311 | contracted 6312 | seule 6313 | debate 6314 | goes 6315 | reply 6316 | clergy 6317 | doing 6318 | water 6319 | entertain 6320 | witch 6321 | groups 6322 | hoarse 6323 | thirty 6324 | healthy 6325 | pearls 6326 | guilty 6327 | descended 6328 | def 6329 | altname 6330 | hospitality 6331 | navigation 6332 | humour 6333 | hopeful 6334 | prompt 6335 | swallowed 6336 | crisis 6337 | russell 6338 | hector 6339 | confounded 6340 | athens 6341 | wrongs 6342 | theme 6343 | prey 6344 | memory 6345 | negroes 6346 | today 6347 | roared 6348 | neglected 6349 | attained 6350 | dismal 6351 | cases 6352 | states 6353 | julius 6354 | local 6355 | modified 6356 | longitude 6357 | districts 6358 | laughter 6359 | slightest 6360 | numbers 6361 | ihre 6362 | figure 6363 | stroke 6364 | performed 6365 | counting 6366 | requirements 6367 | soleil 6368 | inheritance 6369 | dress 6370 | secured 6371 | eloquent 6372 | innumerable 6373 | vital 6374 | cardinal 6375 | fourth 6376 | lautre 6377 | speaks 6378 | information 6379 | eighty 6380 | birthday 6381 | representations 6382 | branches 6383 | liquid 6384 | amuse 6385 | inform 6386 | glancing 6387 | representation 6388 | refund 6389 | exclusive 6390 | comfort 6391 | marguerite 6392 | furnished 6393 | werent 6394 | mainly 6395 | motions 6396 | worship 6397 | wallace 6398 | platform 6399 | offers 6400 | farmer 6401 | happened 6402 | lonely 6403 | processes 6404 | delighted 6405 | underneath 6406 | qualified 6407 | hamilton 6408 | endeavored 6409 | feature 6410 | wagon 6411 | term 6412 | equality 6413 | name 6414 | opera 6415 | corners 6416 | partie 6417 | avons 6418 | possibilities 6419 | realise 6420 | trunks 6421 | persian 6422 | farewell 6423 | begun 6424 | distributor 6425 | exertions 6426 | sunrise 6427 | plans 6428 | exclamation 6429 | constitution 6430 | ultimately 6431 | intercourse 6432 | profit 6433 | factory 6434 | attracted 6435 | eagle 6436 | attended 6437 | theory 6438 | impose 6439 | motion 6440 | turn 6441 | place 6442 | swing 6443 | preach 6444 | childhood 6445 | origin 6446 | revenue 6447 | vient 6448 | awfully 6449 | commissioners 6450 | array 6451 | continent 6452 | george 6453 | engineer 6454 | necessarily 6455 | district 6456 | stuck 6457 | trillion 6458 | europe 6459 | returns 6460 | convention 6461 | legally 6462 | white 6463 | gives 6464 | hue 6465 | season 6466 | hun 6467 | hut 6468 | released 6469 | alas 6470 | copy 6471 | holder 6472 | population 6473 | wide 6474 | unfortunately 6475 | require 6476 | diplomatic 6477 | officials 6478 | eine 6479 | sera 6480 | cards 6481 | oath 6482 | pre 6483 | ang 6484 | ann 6485 | confessed 6486 | rent 6487 | prs 6488 | ans 6489 | prosperity 6490 | haue 6491 | transcription 6492 | diligence 6493 | ideas 6494 | wandered 6495 | dining 6496 | ideal 6497 | resembling 6498 | raoul 6499 | urge 6500 | sure 6501 | sherman 6502 | falls 6503 | boiling 6504 | donation 6505 | cleared 6506 | considered 6507 | proud 6508 | hungry 6509 | uncle 6510 | herren 6511 | quantity 6512 | slope 6513 | cheap 6514 | percy 6515 | trop 6516 | gulf 6517 | genius 6518 | written 6519 | crime 6520 | wood 6521 | believing 6522 | passing 6523 | wool 6524 | dreaded 6525 | lighted 6526 | uncles 6527 | begging 6528 | expectation 6529 | crude 6530 | lighter 6531 | clerks 6532 | hedge 6533 | treachery 6534 | reveal 6535 | regarding 6536 | naked 6537 | discussing 6538 | crystal 6539 | imposing 6540 | labors 6541 | dtre 6542 | college 6543 | stanley 6544 | violates 6545 | professed 6546 | encouraged 6547 | fails 6548 | voluntary 6549 | farmers 6550 | federal 6551 | subsequent 6552 | review 6553 | definite 6554 | weapons 6555 | outside 6556 | chaque 6557 | arrival 6558 | flow 6559 | como 6560 | cities 6561 | come 6562 | grieved 6563 | reaction 6564 | region 6565 | priests 6566 | quiet 6567 | contract 6568 | energies 6569 | senator 6570 | railway 6571 | utterance 6572 | duty 6573 | key 6574 | color 6575 | pot 6576 | por 6577 | pos 6578 | insist 6579 | resentment 6580 | satisfaction 6581 | pole 6582 | approval 6583 | endeavor 6584 | turkey 6585 | lifes 6586 | howard 6587 | deposited 6588 | peaceful 6589 | hardly 6590 | engine 6591 | direction 6592 | indirect 6593 | robbed 6594 | designed 6595 | blessing 6596 | andrew 6597 | tiger 6598 | minister 6599 | careful 6600 | spirit 6601 | pilot 6602 | case 6603 | shaft 6604 | mount 6605 | cash 6606 | arnold 6607 | cast 6608 | xiii 6609 | shops 6610 | nyt 6611 | telephone 6612 | cured 6613 | vivid 6614 | author 6615 | granted 6616 | reminded 6617 | marys 6618 | bows 6619 | agitated 6620 | events 6621 | todos 6622 | week 6623 | nest 6624 | refusal 6625 | driver 6626 | drives 6627 | driven 6628 | persons 6629 | delicate 6630 | statue 6631 | changing 6632 | weep 6633 | hebben 6634 | longing 6635 | modes 6636 | pennsylvania 6637 | relief 6638 | model 6639 | reward 6640 | bodies 6641 | justify 6642 | desolate 6643 | guided 6644 | actions 6645 | violent 6646 | kill 6647 | satin 6648 | kneeling 6649 | captured 6650 | blow 6651 | announcement 6652 | gentleness 6653 | widest 6654 | womans 6655 | rose 6656 | complain 6657 | lets 6658 | shrine 6659 | rosy 6660 | flashing 6661 | kingdom 6662 | virginia 6663 | confined 6664 | accepted 6665 | furniture 6666 | acute 6667 | shelf 6668 | donations 6669 | tower 6670 | reduced 6671 | shillings 6672 | madrid 6673 | pacific 6674 | snatched 6675 | table 6676 | provided 6677 | mood 6678 | eleanor 6679 | legal 6680 | moon 6681 | peuple 6682 | porter 6683 | freed 6684 | poem 6685 | nails 6686 | communicate 6687 | slaughter 6688 | terrified 6689 | accompany 6690 | subdued 6691 | zealous 6692 | discussed 6693 | stand 6694 | gregory 6695 | tribe 6696 | ladies 6697 | cambridge 6698 | instruments 6699 | augustus 6700 | cursed 6701 | rising 6702 | determine 6703 | england 6704 | feudal 6705 | strictly 6706 | celui 6707 | disposed 6708 | christianity 6709 | strict 6710 | valley 6711 | fish 6712 | forbade 6713 | catholics 6714 | mischief 6715 | regard 6716 | cabinet 6717 | promote 6718 | faster 6719 | grasp 6720 | zeer 6721 | grass 6722 | creeping 6723 | strongly 6724 | taylor 6725 | taste 6726 | felix 6727 | britain 6728 | politics 6729 | bishop 6730 | stumbled 6731 | hasnt 6732 | rubbed 6733 | deserve 6734 | swords 6735 | euch 6736 | roses 6737 | heathen 6738 | babylon 6739 | requested 6740 | briefly 6741 | separate 6742 | symbol 6743 | souls 6744 | gutenberg 6745 | lovers 6746 | bounded 6747 | recognise 6748 | brass 6749 | applause 6750 | calls 6751 | wife 6752 | curve 6753 | oriental 6754 | missouri 6755 | lace 6756 | chinese 6757 | ali 6758 | lack 6759 | dish 6760 | follow 6761 | disk 6762 | als 6763 | glimpse 6764 | apartment 6765 | homage 6766 | subjected 6767 | sparkling 6768 | removal 6769 | aaron 6770 | program 6771 | present 6772 | crest 6773 | activities 6774 | belonging 6775 | woman 6776 | worse 6777 | song 6778 | infringement 6779 | fat 6780 | sons 6781 | worst 6782 | awful 6783 | ticket 6784 | treating 6785 | sentimental 6786 | regiments 6787 | list 6788 | prolonged 6789 | grandfather 6790 | singularly 6791 | fearful 6792 | highway 6793 | indemnity 6794 | ten 6795 | haar 6796 | tea 6797 | reins 6798 | rate 6799 | invention 6800 | design 6801 | ter 6802 | tes 6803 | sue 6804 | hesitation 6805 | sua 6806 | deeply 6807 | sum 6808 | lawrence 6809 | rascal 6810 | eminent 6811 | crush 6812 | version 6813 | sus 6814 | sur 6815 | discern 6816 | guns 6817 | multitude 6818 | christian 6819 | behaviour 6820 | compressed 6821 | directions 6822 | observing 6823 | tragedy 6824 | toen 6825 | naval 6826 | extraordinary 6827 | chain 6828 | disposition 6829 | suddenly 6830 | solitude 6831 | texts 6832 | florence 6833 | proceed 6834 | faint 6835 | rustic 6836 | minor 6837 | horses 6838 | flat 6839 | wretched 6840 | knows 6841 | definition 6842 | flag 6843 | stick 6844 | known 6845 | glad 6846 | illustrious 6847 | excursion 6848 | enfant 6849 | pony 6850 | division 6851 | imitation 6852 | arise 6853 | swung 6854 | offspring 6855 | influenced 6856 | court 6857 | goal 6858 | breaking 6859 | occasionally 6860 | possibly 6861 | mould 6862 | simplicity 6863 | shouldnt 6864 | reflect 6865 | lighting 6866 | adventure 6867 | proclaimed 6868 | short 6869 | chiefly 6870 | susan 6871 | departure 6872 | jove 6873 | shore 6874 | grande 6875 | shade 6876 | indebted 6877 | september 6878 | essence 6879 | mission 6880 | isnt 6881 | pretext 6882 | avenue 6883 | inquiries 6884 | style 6885 | severely 6886 | pray 6887 | inward 6888 | fairbanks 6889 | fate 6890 | abbey 6891 | harmless 6892 | stephen 6893 | bout 6894 | alter 6895 | somebody 6896 | hunter 6897 | sighed 6898 | hunted 6899 | bigger 6900 | instructions 6901 | marcus 6902 | policeman 6903 | cinq 6904 | friendship 6905 | weight 6906 | generation 6907 | oppressed 6908 | duchess 6909 | expect 6910 | undertake 6911 | cups 6912 | wondered 6913 | health 6914 | hill 6915 | paradise 6916 | induced 6917 | benjamin 6918 | wisconsin 6919 | roofs 6920 | friday 6921 | guess 6922 | teach 6923 | jew 6924 | thrown 6925 | thread 6926 | alluded 6927 | prejudice 6928 | deja 6929 | divorce 6930 | consequence 6931 | fallen 6932 | throws 6933 | feed 6934 | dine 6935 | feel 6936 | relate 6937 | fancy 6938 | feet 6939 | sympathy 6940 | sailor 6941 | revolution 6942 | defects 6943 | fees 6944 | temples 6945 | idea 6946 | passes 6947 | story 6948 | breathless 6949 | temperature 6950 | paint 6951 | leading 6952 | hangs 6953 | storm 6954 | aristocracy 6955 | store 6956 | jeg 6957 | attendants 6958 | imperfect 6959 | pains 6960 | relieved 6961 | hotel 6962 | obsolete 6963 | treasures 6964 | rifle 6965 | convinced 6966 | king 6967 | kind 6968 | double 6969 | instruction 6970 | dans 6971 | dann 6972 | insulted 6973 | tongues 6974 | obstacles 6975 | strengthen 6976 | suspicious 6977 | shrewd 6978 | gale 6979 | alike 6980 | wilson 6981 | nights 6982 | check 6983 | moist 6984 | maison 6985 | finding 6986 | added 6987 | electric 6988 | reckon 6989 | measures 6990 | reach 6991 | cigarette 6992 | undertaken 6993 | gilt 6994 | seasons 6995 | measured 6996 | stately 6997 | windows 6998 | dissolved 6999 | apres 7000 | institutions 7001 | lying 7002 | stones 7003 | fond 7004 | melody 7005 | font 7006 | gilded 7007 | securing 7008 | grotesque 7009 | penalty 7010 | betray 7011 | moses 7012 | hatte 7013 | porque 7014 | shepherd 7015 | hit 7016 | whistle 7017 | hid 7018 | mieux 7019 | instinctive 7020 | hij 7021 | banquet 7022 | jeanne 7023 | beautifully 7024 | activity 7025 | dabord 7026 | precaution 7027 | wrote 7028 | bars 7029 | art 7030 | achieved 7031 | intelligence 7032 | defense 7033 | dumb 7034 | chambers 7035 | bark 7036 | arm 7037 | declined 7038 | barn 7039 | learnt 7040 | forlorn 7041 | drooping 7042 | femmes 7043 | numerous 7044 | corruption 7045 | soll 7046 | latin 7047 | recently 7048 | creating 7049 | sold 7050 | attention 7051 | york 7052 | succeed 7053 | imp 7054 | opposition 7055 | competent 7056 | bronze 7057 | license 7058 | roman 7059 | xpage 7060 | bond 7061 | finds 7062 | flies 7063 | distress 7064 | reasons 7065 | sweet 7066 | sweep 7067 | harbour 7068 | village 7069 | decline 7070 | dun 7071 | duc 7072 | political 7073 | due 7074 | appears 7075 | brick 7076 | woke 7077 | affectionate 7078 | flight 7079 | vaguely 7080 | goodly 7081 | demand 7082 | turkish 7083 | plants 7084 | georgia 7085 | conception 7086 | boast 7087 | workmen 7088 | frozen 7089 | expressly 7090 | theres 7091 | dublin 7092 | obstacle 7093 | frantic 7094 | lodged 7095 | rid 7096 | anguish 7097 | currents 7098 | qau 7099 | shirt 7100 | widely 7101 | peoples 7102 | esteemed 7103 | advise 7104 | spears 7105 | daughters 7106 | higher 7107 | literature 7108 | mountain 7109 | restraint 7110 | flows 7111 | moving 7112 | lower 7113 | garments 7114 | try 7115 | cheek 7116 | anybody 7117 | analysis 7118 | dared 7119 | cheer 7120 | edge 7121 | machinery 7122 | stating 7123 | endeavour 7124 | unseen 7125 | intervals 7126 | questions 7127 | prince 7128 | profitable 7129 | tables 7130 | morals 7131 | workers 7132 | ciel 7133 | exclusively 7134 | speedily 7135 | skall 7136 | exhibition 7137 | painfully 7138 | associations 7139 | complaint 7140 | advocate 7141 | shaped 7142 | crois 7143 | incidental 7144 | cheval 7145 | shapes 7146 | collect 7147 | arthur 7148 | essential 7149 | hinted 7150 | understood 7151 | hurriedly 7152 | newsletter 7153 | rien 7154 | seamen 7155 | tends 7156 | prof 7157 | fragments 7158 | anna 7159 | lose 7160 | refused 7161 | aloft 7162 | mutta 7163 | weil 7164 | consolation 7165 | intense 7166 | handled 7167 | cautious 7168 | mingled 7169 | firing 7170 | frightful 7171 | stricken 7172 | range 7173 | militia 7174 | hatred 7175 | youthful 7176 | conquest 7177 | johns 7178 | warmed 7179 | drifted 7180 | plaisir 7181 | canal 7182 | impressed 7183 | tenth 7184 | rows 7185 | question 7186 | long 7187 | andy 7188 | sections 7189 | vienna 7190 | files 7191 | mountains 7192 | plunge 7193 | cloth 7194 | repeatedly 7195 | filed 7196 | upright 7197 | raising 7198 | attribute 7199 | consist 7200 | characteristic 7201 | liberty 7202 | called 7203 | matre 7204 | associated 7205 | dismay 7206 | warning 7207 | graham 7208 | peter 7209 | tone 7210 | evils 7211 | peace 7212 | backs 7213 | towers 7214 | parlor 7215 | income 7216 | grk 7217 | mock 7218 | nice 7219 | dale 7220 | davoir 7221 | problems 7222 | helping 7223 | meaning 7224 | allowing 7225 | happier 7226 | vice 7227 | backed 7228 | attacking 7229 | impatient 7230 | narrative 7231 | tete 7232 | ganz 7233 | issued 7234 | resistance 7235 | alien 7236 | gang 7237 | winds 7238 | contributions 7239 | prophecy 7240 | issues 7241 | dautres 7242 | simon 7243 | disposal 7244 | languages 7245 | obstinate 7246 | stable 7247 | breach 7248 | abode 7249 | confirmation 7250 | seized 7251 | tribunal 7252 | ging 7253 | wishes 7254 | drinking 7255 | defended 7256 | redistribute 7257 | zeit 7258 | descend 7259 | notes 7260 | tenderness 7261 | dealt 7262 | settlers 7263 | noted 7264 | disclaimer 7265 | concluded 7266 | smaller 7267 | folds 7268 | malice 7269 | fold 7270 | traveling 7271 | plead 7272 | acid 7273 | folk 7274 | reaching 7275 | waiting 7276 | capital 7277 | renders 7278 | ammunition 7279 | chose 7280 | desires 7281 | pushing 7282 | youngest 7283 | desired 7284 | oars 7285 | separation 7286 | settling 7287 | distressed 7288 | larger 7289 | shades 7290 | grandes 7291 | leaving 7292 | suggests 7293 | mouvement 7294 | apple 7295 | heart 7296 | egypt 7297 | confession 7298 | apt 7299 | hardy 7300 | motor 7301 | lodging 7302 | newby 7303 | apply 7304 | fed 7305 | fee 7306 | feb 7307 | stream 7308 | consumption 7309 | manifested 7310 | saith 7311 | feu 7312 | examination 7313 | kuin 7314 | weeping 7315 | bitterly 7316 | possession 7317 | clever 7318 | porch 7319 | inclined 7320 | heir 7321 | sore 7322 | women 7323 | topic 7324 | getting 7325 | critic 7326 | proof 7327 | proprietary 7328 | patron 7329 | earnestness 7330 | tax 7331 | villain 7332 | tal 7333 | tan 7334 | sir 7335 | united 7336 | sit 7337 | six 7338 | parlour 7339 | struggles 7340 | tom 7341 | fortunate 7342 | sig 7343 | sie 7344 | struggled 7345 | panic 7346 | sin 7347 | sil 7348 | attend 7349 | abuse 7350 | readiness 7351 | light 7352 | interrupted 7353 | honestly 7354 | beauties 7355 | stamped 7356 | damsel 7357 | interpreted 7358 | whilst 7359 | dearest 7360 | looks 7361 | tyrant 7362 | superior 7363 | ships 7364 | permanent 7365 | restrain 7366 | choose 7367 | orange 7368 | covered 7369 | holiday 7370 | crowds 7371 | sweden 7372 | originator 7373 | eastward 7374 | crash 7375 | flour 7376 | practice 7377 | flew 7378 | ambition 7379 | republican 7380 | affections 7381 | fled 7382 | successor 7383 | worlds 7384 | profound 7385 | feast 7386 | billy 7387 | transmitted 7388 | trap 7389 | tumult 7390 | bills 7391 | oui 7392 | related 7393 | doubled 7394 | relates 7395 | indulged 7396 | couldnt 7397 | ebooks 7398 | respects 7399 | sentiment 7400 | frontier 7401 | exporting 7402 | honorable 7403 | rites 7404 | nuit 7405 | promptly 7406 | pendant 7407 | philip 7408 | tenant 7409 | additional 7410 | comrade 7411 | organic 7412 | phrases 7413 | horace 7414 | conversation 7415 | plainly 7416 | hitherto 7417 | bonnet 7418 | twas 7419 | noticed 7420 | bois 7421 | publication 7422 | unknown 7423 | accent 7424 | boil 7425 | shell 7426 | einem 7427 | academy 7428 | doomed 7429 | shallow 7430 | regards 7431 | mules 7432 | july 7433 | institution 7434 | holland 7435 | riches 7436 | richer 7437 | tommy 7438 | patients 7439 | dusty 7440 | encore 7441 | westward 7442 | faut 7443 | sincerity 7444 | linked 7445 | catholic 7446 | afraid 7447 | angle 7448 | pupils 7449 | russians 7450 | propriety 7451 | agency 7452 | martha 7453 | divers 7454 | vegetation 7455 | combat 7456 | centre 7457 | alarmed 7458 | class 7459 | deny 7460 | neighboring 7461 | fountain 7462 | pipe 7463 | denn 7464 | goals 7465 | dijo 7466 | chances 7467 | agreed 7468 | tidings 7469 | chapters 7470 | purely 7471 | niet 7472 | dorothy 7473 | utter 7474 | chicken 7475 | pleased 7476 | chanced 7477 | nearer 7478 | highest 7479 | rendre 7480 | surroundings 7481 | piano 7482 | thousands 7483 | indignant 7484 | vigor 7485 | watching 7486 | midnight 7487 | ones 7488 | words 7489 | penetrate 7490 | donate 7491 | viel 7492 | ended 7493 | married 7494 | ascertain 7495 | generations 7496 | deceived 7497 | available 7498 | acquired 7499 | merits 7500 | luminous 7501 | closer 7502 | closet 7503 | monstrous 7504 | cruel 7505 | superb 7506 | favor 7507 | identification 7508 | closed 7509 | boughs 7510 | stories 7511 | bought 7512 | jos 7513 | ability 7514 | opening 7515 | joy 7516 | huts 7517 | embarrassment 7518 | job 7519 | joe 7520 | spoil 7521 | swift 7522 | commands 7523 | piece 7524 | april 7525 | grain 7526 | safely 7527 | grounds 7528 | wall 7529 | walk 7530 | subscribe 7531 | worldly 7532 | respect 7533 | withdrawn 7534 | provinces 7535 | decent 7536 | hunters 7537 | trademark 7538 | naples 7539 | remedies 7540 | beatrice 7541 | painted 7542 | sufficient 7543 | ensuring 7544 | improved 7545 | repetition 7546 | painter 7547 | abandoned 7548 | wilt 7549 | vanilla 7550 | wild 7551 | supply 7552 | olisi 7553 | ringing 7554 | encouragement 7555 | gothic 7556 | education 7557 | pied 7558 | privileges 7559 | cross 7560 | unite 7561 | member 7562 | unity 7563 | merciful 7564 | largest 7565 | inch 7566 | gets 7567 | grandeur 7568 | difficult 7569 | slave 7570 | conceived 7571 | beast 7572 | student 7573 | ntait 7574 | collar 7575 | correspondent 7576 | fighting 7577 | english 7578 | conquer 7579 | realised 7580 | bending 7581 | excessive 7582 | cried 7583 | heavily 7584 | half 7585 | obtain 7586 | cries 7587 | batteries 7588 | recollection 7589 | fishing 7590 | happiness 7591 | rapid 7592 | drunk 7593 | smith 7594 | hall 7595 | adoption 7596 | attractive 7597 | usage 7598 | earnestly 7599 | smart 7600 | loan 7601 | identical 7602 | sick 7603 | provisions 7604 | execute 7605 | ridden 7606 | know 7607 | presume 7608 | press 7609 | perpetual 7610 | loses 7611 | hosts 7612 | james 7613 | agents 7614 | wonders 7615 | exceed 7616 | shabby 7617 | scared 7618 | scottish 7619 | searching 7620 | growth 7621 | qex 7622 | empire 7623 | employment 7624 | leaf 7625 | lead 7626 | lean 7627 | mines 7628 | philosopher 7629 | leap 7630 | leader 7631 | poets 7632 | murderer 7633 | obey 7634 | murdered 7635 | conveyed 7636 | throne 7637 | throng 7638 | rare 7639 | carried 7640 | extension 7641 | saddle 7642 | column 7643 | universe 7644 | urged 7645 | carries 7646 | swear 7647 | sweat 7648 | emperor 7649 | warranty 7650 | polished 7651 | pourtant 7652 | wilderness 7653 | owe 7654 | weather 7655 | promise 7656 | brush 7657 | lawful 7658 | prompted 7659 | van 7660 | transfer 7661 | secret 7662 | trenches 7663 | captains 7664 | intention 7665 | var 7666 | breeding 7667 | cliff 7668 | funds 7669 | mutter 7670 | volume 7671 | shant 7672 | made 7673 | venetian 7674 | record 7675 | catching 7676 | ruling 7677 | cake 7678 | stirring 7679 | eagerness 7680 | jenny 7681 | betrayed 7682 | goodness 7683 | reflecting 7684 | mutual 7685 | incredible 7686 | illinois 7687 | book 7688 | sich 7689 | branch 7690 | conclusion 7691 | lance 7692 | kinds 7693 | june 7694 | cruelty 7695 | margaret 7696 | merchantability 7697 | earthly 7698 | upwards 7699 | ranks 7700 | indirectly 7701 | volumes 7702 | allein 7703 | -------------------------------------------------------------------------------- /vendor/onlineldavb/onlineldavb.py: -------------------------------------------------------------------------------- 1 | # onlineldavb.py: Package of functions for fitting Latent Dirichlet 2 | # Allocation (LDA) with online variational Bayes (VB). 3 | # 4 | # Copyright (C) 2010 Matthew D. Hoffman 5 | # 6 | # This program is free software: you can redistribute it and/or modify 7 | # it under the terms of the GNU General Public License as published by 8 | # the Free Software Foundation, either version 3 of the License, or 9 | # (at your option) any later version. 10 | # 11 | # This program is distributed in the hope that it will be useful, 12 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | # GNU General Public License for more details. 15 | # 16 | # You should have received a copy of the GNU General Public License 17 | # along with this program. If not, see . 18 | 19 | import sys, re, time, string 20 | import numpy as n 21 | from scipy.special import gammaln, psi 22 | 23 | n.random.seed(100000001) 24 | meanchangethresh = 0.001 25 | 26 | def dirichlet_expectation(alpha): 27 | """ 28 | For a vector theta ~ Dir(alpha), computes E[log(theta)] given alpha. 29 | """ 30 | if (len(alpha.shape) == 1): 31 | return(psi(alpha) - psi(n.sum(alpha))) 32 | return(psi(alpha) - psi(n.sum(alpha, 1))[:, n.newaxis]) 33 | 34 | def parse_doc_list(docs, vocab): 35 | """ 36 | Parse a document into a list of word ids and a list of counts, 37 | or parse a set of documents into two lists of lists of word ids 38 | and counts. 39 | 40 | Arguments: 41 | docs: List of D documents. Each document must be represented as 42 | a single string. (Word order is unimportant.) Any 43 | words not in the vocabulary will be ignored. 44 | vocab: Dictionary mapping from words to integer ids. 45 | 46 | Returns a pair of lists of lists. 47 | 48 | The first, wordids, says what vocabulary tokens are present in 49 | each document. wordids[i][j] gives the jth unique token present in 50 | document i. (Don't count on these tokens being in any particular 51 | order.) 52 | 53 | The second, wordcts, says how many times each vocabulary token is 54 | present. wordcts[i][j] is the number of times that the token given 55 | by wordids[i][j] appears in document i. 56 | """ 57 | if (type(docs).__name__ == 'str'): 58 | temp = list() 59 | temp.append(docs) 60 | docs = temp 61 | 62 | D = len(docs) 63 | 64 | wordids = list() 65 | wordcts = list() 66 | for d in range(0, D): 67 | docs[d] = docs[d].lower() 68 | docs[d] = re.sub(r'-', ' ', docs[d]) 69 | docs[d] = re.sub(r'[^a-z ]', '', docs[d]) 70 | docs[d] = re.sub(r' +', ' ', docs[d]) 71 | words = string.split(docs[d]) 72 | ddict = dict() 73 | for word in words: 74 | if (word in vocab): 75 | wordtoken = vocab[word] 76 | if (not wordtoken in ddict): 77 | ddict[wordtoken] = 0 78 | ddict[wordtoken] += 1 79 | wordids.append(ddict.keys()) 80 | wordcts.append(ddict.values()) 81 | 82 | return((wordids, wordcts)) 83 | 84 | class OnlineLDA: 85 | """ 86 | Implements online VB for LDA as described in (Hoffman et al. 2010). 87 | """ 88 | 89 | def __init__(self, vocab, K, D, alpha, eta, tau0, kappa): 90 | """ 91 | Arguments: 92 | K: Number of topics 93 | vocab: A set of words to recognize. When analyzing documents, any word 94 | not in this set will be ignored. 95 | D: Total number of documents in the population. For a fixed corpus, 96 | this is the size of the corpus. In the truly online setting, this 97 | can be an estimate of the maximum number of documents that 98 | could ever be seen. 99 | alpha: Hyperparameter for prior on weight vectors theta 100 | eta: Hyperparameter for prior on topics beta 101 | tau0: A (positive) learning parameter that downweights early iterations 102 | kappa: Learning rate: exponential decay rate---should be between 103 | (0.5, 1.0] to guarantee asymptotic convergence. 104 | 105 | Note that if you pass the same set of D documents in every time and 106 | set kappa=0 this class can also be used to do batch VB. 107 | """ 108 | self._vocab = dict() 109 | for word in vocab: 110 | word = word.lower() 111 | word = re.sub(r'[^a-z]', '', word) 112 | self._vocab[word] = len(self._vocab) 113 | 114 | self._K = K 115 | self._W = len(self._vocab) 116 | self._D = D 117 | self._alpha = alpha 118 | self._eta = eta 119 | self._tau0 = tau0 + 1 120 | self._kappa = kappa 121 | self._updatect = 0 122 | 123 | # Initialize the variational distribution q(beta|lambda) 124 | self._lambda = 1*n.random.gamma(100., 1./100., (self._K, self._W)) 125 | self._Elogbeta = dirichlet_expectation(self._lambda) 126 | self._expElogbeta = n.exp(self._Elogbeta) 127 | 128 | def do_e_step(self, docs): 129 | """ 130 | Given a mini-batch of documents, estimates the parameters 131 | gamma controlling the variational distribution over the topic 132 | weights for each document in the mini-batch. 133 | 134 | Arguments: 135 | docs: List of D documents. Each document must be represented 136 | as a string. (Word order is unimportant.) Any 137 | words not in the vocabulary will be ignored. 138 | 139 | Returns a tuple containing the estimated values of gamma, 140 | as well as sufficient statistics needed to update lambda. 141 | """ 142 | # This is to handle the case where someone just hands us a single 143 | # document, not in a list. 144 | if (type(docs).__name__ == 'string'): 145 | temp = list() 146 | temp.append(docs) 147 | docs = temp 148 | 149 | (wordids, wordcts) = parse_doc_list(docs, self._vocab) 150 | batchD = len(docs) 151 | 152 | # Initialize the variational distribution q(theta|gamma) for 153 | # the mini-batch 154 | gamma = 1*n.random.gamma(100., 1./100., (batchD, self._K)) 155 | Elogtheta = dirichlet_expectation(gamma) 156 | expElogtheta = n.exp(Elogtheta) 157 | 158 | sstats = n.zeros(self._lambda.shape) 159 | # Now, for each document d update that document's gamma and phi 160 | it = 0 161 | meanchange = 0 162 | for d in range(0, batchD): 163 | # These are mostly just shorthand (but might help cache locality) 164 | ids = wordids[d] 165 | cts = wordcts[d] 166 | gammad = gamma[d, :] 167 | Elogthetad = Elogtheta[d, :] 168 | expElogthetad = expElogtheta[d, :] 169 | expElogbetad = self._expElogbeta[:, ids] 170 | # The optimal phi_{dwk} is proportional to 171 | # expElogthetad_k * expElogbetad_w. phinorm is the normalizer. 172 | phinorm = n.dot(expElogthetad, expElogbetad) + 1e-100 173 | # Iterate between gamma and phi until convergence 174 | for it in range(0, 100): 175 | lastgamma = gammad 176 | # We represent phi implicitly to save memory and time. 177 | # Substituting the value of the optimal phi back into 178 | # the update for gamma gives this update. Cf. Lee&Seung 2001. 179 | gammad = self._alpha + expElogthetad * \ 180 | n.dot(cts / phinorm, expElogbetad.T) 181 | Elogthetad = dirichlet_expectation(gammad) 182 | expElogthetad = n.exp(Elogthetad) 183 | phinorm = n.dot(expElogthetad, expElogbetad) + 1e-100 184 | # If gamma hasn't changed much, we're done. 185 | meanchange = n.mean(abs(gammad - lastgamma)) 186 | if (meanchange < meanchangethresh): 187 | break 188 | gamma[d, :] = gammad 189 | # Contribution of document d to the expected sufficient 190 | # statistics for the M step. 191 | sstats[:, ids] += n.outer(expElogthetad.T, cts/phinorm) 192 | 193 | # This step finishes computing the sufficient statistics for the 194 | # M step, so that 195 | # sstats[k, w] = \sum_d n_{dw} * phi_{dwk} 196 | # = \sum_d n_{dw} * exp{Elogtheta_{dk} + Elogbeta_{kw}} / phinorm_{dw}. 197 | sstats = sstats * self._expElogbeta 198 | 199 | return((gamma, sstats)) 200 | 201 | def update_lambda(self, docs): 202 | """ 203 | First does an E step on the mini-batch given in wordids and 204 | wordcts, then uses the result of that E step to update the 205 | variational parameter matrix lambda. 206 | 207 | Arguments: 208 | docs: List of D documents. Each document must be represented 209 | as a string. (Word order is unimportant.) Any 210 | words not in the vocabulary will be ignored. 211 | 212 | Returns gamma, the parameters to the variational distribution 213 | over the topic weights theta for the documents analyzed in this 214 | update. 215 | 216 | Also returns an estimate of the variational bound for the 217 | entire corpus for the OLD setting of lambda based on the 218 | documents passed in. This can be used as a (possibly very 219 | noisy) estimate of held-out likelihood. 220 | """ 221 | 222 | # rhot will be between 0 and 1, and says how much to weight 223 | # the information we got from this mini-batch. 224 | rhot = pow(self._tau0 + self._updatect, -self._kappa) 225 | self._rhot = rhot 226 | # Do an E step to update gamma, phi | lambda for this 227 | # mini-batch. This also returns the information about phi that 228 | # we need to update lambda. 229 | (gamma, sstats) = self.do_e_step(docs) 230 | # Estimate held-out likelihood for current values of lambda. 231 | bound = self.approx_bound(docs, gamma) 232 | # Update lambda based on documents. 233 | self._lambda = self._lambda * (1-rhot) + \ 234 | rhot * (self._eta + self._D * sstats / len(docs)) 235 | self._Elogbeta = dirichlet_expectation(self._lambda) 236 | self._expElogbeta = n.exp(self._Elogbeta) 237 | self._updatect += 1 238 | 239 | return(gamma, bound) 240 | 241 | def approx_bound(self, docs, gamma): 242 | """ 243 | Estimates the variational bound over *all documents* using only 244 | the documents passed in as "docs." gamma is the set of parameters 245 | to the variational distribution q(theta) corresponding to the 246 | set of documents passed in. 247 | 248 | The output of this function is going to be noisy, but can be 249 | useful for assessing convergence. 250 | """ 251 | 252 | # This is to handle the case where someone just hands us a single 253 | # document, not in a list. 254 | if (type(docs).__name__ == 'string'): 255 | temp = list() 256 | temp.append(docs) 257 | docs = temp 258 | 259 | (wordids, wordcts) = parse_doc_list(docs, self._vocab) 260 | batchD = len(docs) 261 | 262 | score = 0 263 | Elogtheta = dirichlet_expectation(gamma) 264 | expElogtheta = n.exp(Elogtheta) 265 | 266 | # E[log p(docs | theta, beta)] 267 | for d in range(0, batchD): 268 | gammad = gamma[d, :] 269 | ids = wordids[d] 270 | cts = n.array(wordcts[d]) 271 | phinorm = n.zeros(len(ids)) 272 | for i in range(0, len(ids)): 273 | temp = Elogtheta[d, :] + self._Elogbeta[:, ids[i]] 274 | tmax = max(temp) 275 | phinorm[i] = n.log(sum(n.exp(temp - tmax))) + tmax 276 | score += n.sum(cts * phinorm) 277 | # oldphinorm = phinorm 278 | # phinorm = n.dot(expElogtheta[d, :], self._expElogbeta[:, ids]) 279 | # print oldphinorm 280 | # print n.log(phinorm) 281 | # score += n.sum(cts * n.log(phinorm)) 282 | 283 | # E[log p(theta | alpha) - log q(theta | gamma)] 284 | score += n.sum((self._alpha - gamma)*Elogtheta) 285 | score += n.sum(gammaln(gamma) - gammaln(self._alpha)) 286 | score += sum(gammaln(self._alpha*self._K) - gammaln(n.sum(gamma, 1))) 287 | 288 | # Compensate for the subsampling of the population of documents 289 | score = score * self._D / len(docs) 290 | 291 | # E[log p(beta | eta) - log q (beta | lambda)] 292 | score = score + n.sum((self._eta-self._lambda)*self._Elogbeta) 293 | score = score + n.sum(gammaln(self._lambda) - gammaln(self._eta)) 294 | score = score + n.sum(gammaln(self._eta*self._W) - 295 | gammaln(n.sum(self._lambda, 1))) 296 | 297 | return(score) 298 | -------------------------------------------------------------------------------- /vendor/onlineldavb/onlinewikipedia.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | # onlinewikipedia.py: Demonstrates the use of online VB for LDA to 4 | # analyze a bunch of random Wikipedia articles. 5 | # 6 | # Copyright (C) 2010 Matthew D. Hoffman 7 | # 8 | # This program is free software: you can redistribute it and/or modify 9 | # it under the terms of the GNU General Public License as published by 10 | # the Free Software Foundation, either version 3 of the License, or 11 | # (at your option) any later version. 12 | # 13 | # This program is distributed in the hope that it will be useful, 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU General Public License for more details. 17 | # 18 | # You should have received a copy of the GNU General Public License 19 | # along with this program. If not, see . 20 | 21 | import cPickle, string, numpy, getopt, sys, random, time, re, pprint 22 | 23 | import onlineldavb 24 | import wikirandom 25 | 26 | def main(): 27 | """ 28 | Downloads and analyzes a bunch of random Wikipedia articles using 29 | online VB for LDA. 30 | """ 31 | 32 | # The number of documents to analyze each iteration 33 | batchsize = 64 34 | # The total number of documents in Wikipedia 35 | D = 3.3e6 36 | # The number of topics 37 | K = 100 38 | 39 | # How many documents to look at 40 | if (len(sys.argv) < 2): 41 | documentstoanalyze = int(D/batchsize) 42 | else: 43 | documentstoanalyze = int(sys.argv[1]) 44 | 45 | # Our vocabulary 46 | vocab = file('./dictnostops.txt').readlines() 47 | W = len(vocab) 48 | 49 | # Initialize the algorithm with alpha=1/K, eta=1/K, tau_0=1024, kappa=0.7 50 | olda = onlineldavb.OnlineLDA(vocab, K, D, 1./K, 1./K, 1024., 0.7) 51 | # Run until we've seen D documents. (Feel free to interrupt *much* 52 | # sooner than this.) 53 | for iteration in range(0, documentstoanalyze): 54 | # Download some articles 55 | (docset, articlenames) = \ 56 | wikirandom.get_random_wikipedia_articles(batchsize) 57 | # Give them to online LDA 58 | (gamma, bound) = olda.update_lambda(docset) 59 | # Compute an estimate of held-out perplexity 60 | (wordids, wordcts) = onlineldavb.parse_doc_list(docset, olda._vocab) 61 | perwordbound = bound * len(docset) / (D * sum(map(sum, wordcts))) 62 | print '%d: rho_t = %f, held-out perplexity estimate = %f' % \ 63 | (iteration, olda._rhot, numpy.exp(-perwordbound)) 64 | 65 | # Save lambda, the parameters to the variational distributions 66 | # over topics, and gamma, the parameters to the variational 67 | # distributions over topic weights for the articles analyzed in 68 | # the last iteration. 69 | if (iteration % 10 == 0): 70 | numpy.savetxt('lambda-%d.dat' % iteration, olda._lambda) 71 | numpy.savetxt('gamma-%d.dat' % iteration, gamma) 72 | 73 | if __name__ == '__main__': 74 | main() 75 | -------------------------------------------------------------------------------- /vendor/onlineldavb/printtopics.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | # printtopics.py: Prints the words that are most prominent in a set of 4 | # topics. 5 | # 6 | # Copyright (C) 2010 Matthew D. Hoffman 7 | # 8 | # This program is free software: you can redistribute it and/or modify 9 | # it under the terms of the GNU General Public License as published by 10 | # the Free Software Foundation, either version 3 of the License, or 11 | # (at your option) any later version. 12 | # 13 | # This program is distributed in the hope that it will be useful, 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 | # GNU General Public License for more details. 17 | # 18 | # You should have received a copy of the GNU General Public License 19 | # along with this program. If not, see . 20 | 21 | import sys, os, re, random, math, urllib2, time, cPickle 22 | import numpy 23 | 24 | import onlineldavb 25 | 26 | def main(): 27 | """ 28 | Displays topics fit by onlineldavb.py. The first column gives the 29 | (expected) most prominent words in the topics, the second column 30 | gives their (expected) relative prominence. 31 | """ 32 | vocab = str.split(file(sys.argv[1]).read()) 33 | testlambda = numpy.loadtxt(sys.argv[2]) 34 | 35 | for k in range(0, len(testlambda)): 36 | lambdak = list(testlambda[k, :]) 37 | lambdak = lambdak / sum(lambdak) 38 | temp = zip(lambdak, range(0, len(lambdak))) 39 | temp = sorted(temp, key = lambda x: x[0], reverse=True) 40 | print 'topic %d:' % (k) 41 | # feel free to change the "53" here to whatever fits your screen nicely. 42 | for i in range(0, 53): 43 | print '%20s \t---\t %.4f' % (vocab[temp[i][1]], temp[i][0]) 44 | print 45 | 46 | if __name__ == '__main__': 47 | main() 48 | -------------------------------------------------------------------------------- /vendor/onlineldavb/readme.txt: -------------------------------------------------------------------------------- 1 | ONLINE VARIATIONAL BAYES FOR LATENT DIRICHLET ALLOCATION 2 | 3 | Matthew D. Hoffman 4 | mdhoffma@cs.princeton.edu 5 | 6 | (C) Copyright 2010, Matthew D. Hoffman 7 | 8 | This is free software, you can redistribute it and/or modify it under 9 | the terms of the GNU General Public License. 10 | 11 | The GNU General Public License does not permit this software to be 12 | redistributed in proprietary programs. 13 | 14 | This software is distributed in the hope that it will be useful, but 15 | WITHOUT ANY WARRANTY; without even the implied warranty of 16 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 17 | 18 | You should have received a copy of the GNU General Public License 19 | along with this program; if not, write to the Free Software 20 | Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 21 | USA 22 | 23 | ------------------------------------------------------------------------ 24 | 25 | This Python code implements the online Variational Bayes (VB) 26 | algorithm presented in the paper "Online Learning for Latent Dirichlet 27 | Allocation" by Matthew D. Hoffman, David M. Blei, and Francis Bach, 28 | to be presented at NIPS 2010. 29 | 30 | The algorithm uses stochastic optimization to maximize the variational 31 | objective function for the Latent Dirichlet Allocation (LDA) topic model. 32 | It only looks at a subset of the total corpus of documents each 33 | iteration, and thereby is able to find a locally optimal setting of 34 | the variational posterior over the topics more quickly than a batch 35 | VB algorithm could for large corpora. 36 | 37 | 38 | Files provided: 39 | * onlineldavb.py: A package of functions for fitting LDA using stochastic 40 | optimization. 41 | * onlinewikipedia.py: An example Python script that uses the functions in 42 | onlineldavb.py to fit a set of topics to the documents in Wikipedia. 43 | * wikirandom.py: A package of functions for downloading randomly chosen 44 | Wikipedia articles. 45 | * printtopics.py: A Python script that displays the topics fit using the 46 | functions in onlineldavb.py. 47 | * dictnostops.txt: A vocabulary of English words with the stop words removed. 48 | * readme.txt: This file. 49 | * COPYING: A copy of the GNU public license version 3. 50 | 51 | You will need to have the numpy and scipy packages installed somewhere 52 | that Python can find them to use these scripts. 53 | 54 | 55 | Example: 56 | python onlinewikipedia.py 101 57 | python printtopics.py dictnostops.txt lambda-100.dat 58 | 59 | This would run the algorithm for 101 iterations, and display the 60 | (expected value under the variational posterior of the) topics fit by 61 | the algorithm. (Note that the algorithm will not have fully converged 62 | after 101 iterations---this is just to give an idea of how to use the 63 | code.) 64 | -------------------------------------------------------------------------------- /vendor/onlineldavb/wikirandom.py: -------------------------------------------------------------------------------- 1 | # wikirandom.py: Functions for downloading random articles from Wikipedia 2 | # 3 | # Copyright (C) 2010 Matthew D. Hoffman 4 | # 5 | # This program is free software: you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation, either version 3 of the License, or 8 | # (at your option) any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program. If not, see . 17 | 18 | import sys, urllib2, re, string, time, threading 19 | 20 | def get_random_wikipedia_article(): 21 | """ 22 | Downloads a randomly selected Wikipedia article (via 23 | http://en.wikipedia.org/wiki/Special:Random) and strips out (most 24 | of) the formatting, links, etc. 25 | 26 | This function is a bit simpler and less robust than the code that 27 | was used for the experiments in "Online VB for LDA." 28 | """ 29 | failed = True 30 | while failed: 31 | articletitle = None 32 | failed = False 33 | try: 34 | req = urllib2.Request('http://en.wikipedia.org/wiki/Special:Random', 35 | None, { 'User-Agent' : 'x'}) 36 | f = urllib2.urlopen(req) 37 | while not articletitle: 38 | line = f.readline() 39 | result = re.search(r'title="Edit this page" href="/w/index.php\?title=(.*)\&action=edit" /\>', line) 40 | if (result): 41 | articletitle = result.group(1) 42 | break 43 | elif (len(line) < 1): 44 | sys.exit(1) 45 | 46 | req = urllib2.Request('http://en.wikipedia.org/w/index.php?title=Special:Export/%s&action=submit' \ 47 | % (articletitle), 48 | None, { 'User-Agent' : 'x'}) 49 | f = urllib2.urlopen(req) 50 | all = f.read() 51 | except (urllib2.HTTPError, urllib2.URLError): 52 | print 'oops. there was a failure downloading %s. retrying...' \ 53 | % articletitle 54 | failed = True 55 | continue 56 | print 'downloaded %s. parsing...' % articletitle 57 | 58 | try: 59 | all = re.search(r'(.*)