treat 0.2.5 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. data/LICENSE +3 -3
  2. data/README.md +33 -0
  3. data/files/INFO +1 -0
  4. data/lib/treat.rb +40 -105
  5. data/lib/treat/ai.rb +12 -0
  6. data/lib/treat/ai/classifiers/id3.rb +27 -0
  7. data/lib/treat/categories.rb +82 -35
  8. data/lib/treat/categorizable.rb +44 -0
  9. data/lib/treat/classification.rb +61 -0
  10. data/lib/treat/configurable.rb +115 -0
  11. data/lib/treat/data_set.rb +42 -0
  12. data/lib/treat/dependencies.rb +24 -0
  13. data/lib/treat/downloader.rb +87 -0
  14. data/lib/treat/entities.rb +68 -66
  15. data/lib/treat/entities/abilities.rb +10 -0
  16. data/lib/treat/entities/abilities/buildable.rb +327 -0
  17. data/lib/treat/entities/abilities/checkable.rb +31 -0
  18. data/lib/treat/entities/abilities/copyable.rb +45 -0
  19. data/lib/treat/entities/abilities/countable.rb +51 -0
  20. data/lib/treat/entities/abilities/debuggable.rb +83 -0
  21. data/lib/treat/entities/abilities/delegatable.rb +123 -0
  22. data/lib/treat/entities/abilities/doable.rb +62 -0
  23. data/lib/treat/entities/abilities/exportable.rb +11 -0
  24. data/lib/treat/entities/abilities/iterable.rb +115 -0
  25. data/lib/treat/entities/abilities/magical.rb +83 -0
  26. data/lib/treat/entities/abilities/registrable.rb +74 -0
  27. data/lib/treat/entities/abilities/stringable.rb +91 -0
  28. data/lib/treat/entities/entities.rb +104 -0
  29. data/lib/treat/entities/entity.rb +122 -245
  30. data/lib/treat/exception.rb +4 -4
  31. data/lib/treat/extractors.rb +77 -80
  32. data/lib/treat/extractors/keywords/tf_idf.rb +56 -22
  33. data/lib/treat/extractors/language/what_language.rb +50 -45
  34. data/lib/treat/extractors/name_tag/stanford.rb +55 -0
  35. data/lib/treat/extractors/tf_idf/native.rb +87 -0
  36. data/lib/treat/extractors/time/chronic.rb +55 -0
  37. data/lib/treat/extractors/time/nickel.rb +86 -62
  38. data/lib/treat/extractors/time/ruby.rb +53 -0
  39. data/lib/treat/extractors/topic_words/lda.rb +67 -58
  40. data/lib/treat/extractors/topics/reuters.rb +100 -87
  41. data/lib/treat/formatters.rb +39 -35
  42. data/lib/treat/formatters/readers/abw.rb +49 -29
  43. data/lib/treat/formatters/readers/autoselect.rb +37 -33
  44. data/lib/treat/formatters/readers/doc.rb +19 -13
  45. data/lib/treat/formatters/readers/html.rb +52 -30
  46. data/lib/treat/formatters/readers/image.rb +41 -40
  47. data/lib/treat/formatters/readers/odt.rb +59 -45
  48. data/lib/treat/formatters/readers/pdf.rb +28 -25
  49. data/lib/treat/formatters/readers/txt.rb +12 -15
  50. data/lib/treat/formatters/readers/xml.rb +73 -36
  51. data/lib/treat/formatters/serializers/xml.rb +80 -79
  52. data/lib/treat/formatters/serializers/yaml.rb +19 -18
  53. data/lib/treat/formatters/unserializers/autoselect.rb +12 -22
  54. data/lib/treat/formatters/unserializers/xml.rb +94 -99
  55. data/lib/treat/formatters/unserializers/yaml.rb +20 -19
  56. data/lib/treat/formatters/visualizers/dot.rb +132 -132
  57. data/lib/treat/formatters/visualizers/standoff.rb +52 -44
  58. data/lib/treat/formatters/visualizers/tree.rb +26 -29
  59. data/lib/treat/groupable.rb +153 -0
  60. data/lib/treat/helpers/decimal_point_escaper.rb +22 -0
  61. data/lib/treat/inflectors.rb +50 -45
  62. data/lib/treat/inflectors/cardinalizers/linguistics.rb +40 -0
  63. data/lib/treat/inflectors/conjugators/linguistics.rb +55 -0
  64. data/lib/treat/inflectors/declensors/active_support.rb +31 -0
  65. data/lib/treat/inflectors/declensors/english.rb +38 -0
  66. data/lib/treat/inflectors/declensors/english/inflect.rb +288 -0
  67. data/lib/treat/inflectors/declensors/linguistics.rb +49 -0
  68. data/lib/treat/inflectors/ordinalizers/linguistics.rb +17 -0
  69. data/lib/treat/inflectors/stemmers/porter.rb +160 -0
  70. data/lib/treat/inflectors/stemmers/porter_c.rb +24 -0
  71. data/lib/treat/inflectors/stemmers/uea.rb +28 -0
  72. data/lib/treat/installer.rb +308 -0
  73. data/lib/treat/kernel.rb +105 -27
  74. data/lib/treat/languages.rb +122 -88
  75. data/lib/treat/languages/arabic.rb +15 -15
  76. data/lib/treat/languages/chinese.rb +15 -15
  77. data/lib/treat/languages/dutch.rb +15 -15
  78. data/lib/treat/languages/english.rb +61 -62
  79. data/lib/treat/languages/french.rb +19 -19
  80. data/lib/treat/languages/german.rb +20 -20
  81. data/lib/treat/languages/greek.rb +15 -15
  82. data/lib/treat/languages/italian.rb +16 -16
  83. data/lib/treat/languages/polish.rb +15 -15
  84. data/lib/treat/languages/portuguese.rb +15 -15
  85. data/lib/treat/languages/russian.rb +15 -15
  86. data/lib/treat/languages/spanish.rb +16 -16
  87. data/lib/treat/languages/swedish.rb +16 -16
  88. data/lib/treat/lexicalizers.rb +34 -55
  89. data/lib/treat/lexicalizers/categorizers/from_tag.rb +54 -0
  90. data/lib/treat/lexicalizers/sensers/wordnet.rb +57 -0
  91. data/lib/treat/lexicalizers/sensers/wordnet/synset.rb +71 -0
  92. data/lib/treat/lexicalizers/taggers/brill.rb +70 -0
  93. data/lib/treat/lexicalizers/taggers/brill/patch.rb +61 -0
  94. data/lib/treat/lexicalizers/taggers/lingua.rb +90 -0
  95. data/lib/treat/lexicalizers/taggers/stanford.rb +97 -0
  96. data/lib/treat/linguistics.rb +9 -0
  97. data/lib/treat/linguistics/categories.rb +11 -0
  98. data/lib/treat/linguistics/tags.rb +422 -0
  99. data/lib/treat/loaders/linguistics.rb +30 -0
  100. data/lib/treat/loaders/stanford.rb +27 -0
  101. data/lib/treat/object.rb +1 -0
  102. data/lib/treat/processors.rb +37 -44
  103. data/lib/treat/processors/chunkers/autoselect.rb +16 -0
  104. data/lib/treat/processors/chunkers/html.rb +71 -0
  105. data/lib/treat/processors/chunkers/txt.rb +18 -24
  106. data/lib/treat/processors/parsers/enju.rb +253 -208
  107. data/lib/treat/processors/parsers/stanford.rb +130 -131
  108. data/lib/treat/processors/segmenters/punkt.rb +79 -45
  109. data/lib/treat/processors/segmenters/stanford.rb +46 -48
  110. data/lib/treat/processors/segmenters/tactful.rb +43 -36
  111. data/lib/treat/processors/tokenizers/perl.rb +124 -92
  112. data/lib/treat/processors/tokenizers/ptb.rb +81 -0
  113. data/lib/treat/processors/tokenizers/punkt.rb +48 -42
  114. data/lib/treat/processors/tokenizers/stanford.rb +39 -38
  115. data/lib/treat/processors/tokenizers/tactful.rb +64 -55
  116. data/lib/treat/proxies.rb +52 -35
  117. data/lib/treat/retrievers.rb +26 -16
  118. data/lib/treat/retrievers/indexers/ferret.rb +47 -26
  119. data/lib/treat/retrievers/searchers/ferret.rb +69 -50
  120. data/lib/treat/tree.rb +241 -183
  121. data/spec/collection.rb +123 -0
  122. data/spec/document.rb +93 -0
  123. data/spec/entity.rb +408 -0
  124. data/spec/languages.rb +25 -0
  125. data/spec/phrase.rb +146 -0
  126. data/spec/samples/mathematicians/archimedes.abw +34 -0
  127. data/spec/samples/mathematicians/euler.html +21 -0
  128. data/spec/samples/mathematicians/gauss.pdf +0 -0
  129. data/spec/samples/mathematicians/leibniz.txt +13 -0
  130. data/spec/samples/mathematicians/newton.doc +0 -0
  131. data/spec/sandbox.rb +5 -0
  132. data/spec/token.rb +109 -0
  133. data/spec/treat.rb +52 -0
  134. data/spec/tree.rb +117 -0
  135. data/spec/word.rb +110 -0
  136. data/spec/zone.rb +66 -0
  137. data/tmp/INFO +1 -1
  138. metadata +100 -201
  139. data/INSTALL +0 -1
  140. data/README +0 -3
  141. data/TODO +0 -28
  142. data/lib/economist/half_cocked_basel.txt +0 -16
  143. data/lib/economist/hungarys_troubles.txt +0 -46
  144. data/lib/economist/indias_slowdown.txt +0 -15
  145. data/lib/economist/merkozy_rides_again.txt +0 -24
  146. data/lib/economist/prada_is_not_walmart.txt +0 -9
  147. data/lib/economist/to_infinity_and_beyond.txt +0 -15
  148. data/lib/ferret/_11.cfs +0 -0
  149. data/lib/ferret/_14.cfs +0 -0
  150. data/lib/ferret/_p.cfs +0 -0
  151. data/lib/ferret/_s.cfs +0 -0
  152. data/lib/ferret/_v.cfs +0 -0
  153. data/lib/ferret/_y.cfs +0 -0
  154. data/lib/ferret/segments +0 -0
  155. data/lib/ferret/segments_15 +0 -0
  156. data/lib/treat/buildable.rb +0 -157
  157. data/lib/treat/category.rb +0 -33
  158. data/lib/treat/delegatable.rb +0 -116
  159. data/lib/treat/doable.rb +0 -45
  160. data/lib/treat/entities/collection.rb +0 -14
  161. data/lib/treat/entities/document.rb +0 -12
  162. data/lib/treat/entities/phrases.rb +0 -17
  163. data/lib/treat/entities/tokens.rb +0 -61
  164. data/lib/treat/entities/zones.rb +0 -41
  165. data/lib/treat/extractors/coreferences/stanford.rb +0 -69
  166. data/lib/treat/extractors/date/chronic.rb +0 -32
  167. data/lib/treat/extractors/date/ruby.rb +0 -25
  168. data/lib/treat/extractors/keywords/topics_tf_idf.rb +0 -48
  169. data/lib/treat/extractors/language/language_extractor.rb +0 -27
  170. data/lib/treat/extractors/named_entity_tag/stanford.rb +0 -53
  171. data/lib/treat/extractors/roles/naive.rb +0 -73
  172. data/lib/treat/extractors/statistics/frequency_in.rb +0 -16
  173. data/lib/treat/extractors/statistics/position_in.rb +0 -14
  174. data/lib/treat/extractors/statistics/tf_idf.rb +0 -104
  175. data/lib/treat/extractors/statistics/transition_matrix.rb +0 -105
  176. data/lib/treat/extractors/statistics/transition_probability.rb +0 -57
  177. data/lib/treat/extractors/topic_words/lda/data.dat +0 -46
  178. data/lib/treat/extractors/topic_words/lda/wiki.yml +0 -121
  179. data/lib/treat/extractors/topics/reuters/industry.xml +0 -2717
  180. data/lib/treat/extractors/topics/reuters/region.xml +0 -13586
  181. data/lib/treat/extractors/topics/reuters/topics.xml +0 -17977
  182. data/lib/treat/feature.rb +0 -58
  183. data/lib/treat/features.rb +0 -7
  184. data/lib/treat/formatters/visualizers/short_value.rb +0 -29
  185. data/lib/treat/formatters/visualizers/txt.rb +0 -45
  186. data/lib/treat/group.rb +0 -106
  187. data/lib/treat/helpers/linguistics_loader.rb +0 -18
  188. data/lib/treat/inflectors/cardinal_words/linguistics.rb +0 -42
  189. data/lib/treat/inflectors/conjugations/linguistics.rb +0 -36
  190. data/lib/treat/inflectors/declensions/english.rb +0 -319
  191. data/lib/treat/inflectors/declensions/linguistics.rb +0 -42
  192. data/lib/treat/inflectors/ordinal_words/linguistics.rb +0 -20
  193. data/lib/treat/inflectors/stem/porter.rb +0 -162
  194. data/lib/treat/inflectors/stem/porter_c.rb +0 -26
  195. data/lib/treat/inflectors/stem/uea.rb +0 -30
  196. data/lib/treat/install.rb +0 -59
  197. data/lib/treat/languages/tags.rb +0 -377
  198. data/lib/treat/lexicalizers/category/from_tag.rb +0 -49
  199. data/lib/treat/lexicalizers/linkages/naive.rb +0 -63
  200. data/lib/treat/lexicalizers/synsets/wordnet.rb +0 -76
  201. data/lib/treat/lexicalizers/tag/brill.rb +0 -91
  202. data/lib/treat/lexicalizers/tag/lingua.rb +0 -123
  203. data/lib/treat/lexicalizers/tag/stanford.rb +0 -70
  204. data/lib/treat/processors/segmenters/punkt/dutch.yaml +0 -9716
  205. data/lib/treat/processors/segmenters/punkt/english.yaml +0 -10340
  206. data/lib/treat/processors/segmenters/punkt/french.yaml +0 -43159
  207. data/lib/treat/processors/segmenters/punkt/german.yaml +0 -9572
  208. data/lib/treat/processors/segmenters/punkt/greek.yaml +0 -6050
  209. data/lib/treat/processors/segmenters/punkt/italian.yaml +0 -14748
  210. data/lib/treat/processors/segmenters/punkt/polish.yaml +0 -9751
  211. data/lib/treat/processors/segmenters/punkt/portuguese.yaml +0 -13662
  212. data/lib/treat/processors/segmenters/punkt/russian.yaml +0 -4237
  213. data/lib/treat/processors/segmenters/punkt/spanish.yaml +0 -24034
  214. data/lib/treat/processors/segmenters/punkt/swedish.yaml +0 -10001
  215. data/lib/treat/processors/tokenizers/macintyre.rb +0 -77
  216. data/lib/treat/processors/tokenizers/multilingual.rb +0 -30
  217. data/lib/treat/registrable.rb +0 -28
  218. data/lib/treat/sugar.rb +0 -50
  219. data/lib/treat/viewable.rb +0 -29
  220. data/lib/treat/visitable.rb +0 -28
  221. data/test/profile.rb +0 -2
  222. data/test/tc_entity.rb +0 -117
  223. data/test/tc_extractors.rb +0 -73
  224. data/test/tc_formatters.rb +0 -41
  225. data/test/tc_inflectors.rb +0 -34
  226. data/test/tc_lexicalizers.rb +0 -32
  227. data/test/tc_processors.rb +0 -50
  228. data/test/tc_resources.rb +0 -22
  229. data/test/tc_treat.rb +0 -60
  230. data/test/tc_tree.rb +0 -60
  231. data/test/tests.rb +0 -20
  232. data/test/texts.rb +0 -19
  233. data/test/texts/english/half_cocked_basel.txt +0 -16
  234. data/test/texts/english/hose_and_dry.doc +0 -0
  235. data/test/texts/english/hungarys_troubles.abw +0 -70
  236. data/test/texts/english/long.html +0 -24
  237. data/test/texts/english/long.txt +0 -22
  238. data/test/texts/english/medium.txt +0 -5
  239. data/test/texts/english/republican_nomination.pdf +0 -0
  240. data/test/texts/english/saving_the_euro.odt +0 -0
  241. data/test/texts/english/short.txt +0 -3
  242. data/test/texts/english/zero_sum.html +0 -111
@@ -1,41 +0,0 @@
1
- module Treat
2
- module Tests
3
- class TestFormatters < Test::Unit::TestCase
4
-
5
- def setup
6
- @doc = Treat::Tests::English::ShortDoc
7
- @sentence = Treat::Tests::English::Sentence
8
- end
9
-
10
- def test_readers
11
- # This is done by loading a collection with all types of texts.
12
- end
13
-
14
- def test_serializers_and_unserializers
15
- # Test roundtrip Ruby -> YAML -> Ruby -> YAML
16
- create_temp_file('yml') do |tmp|
17
- @doc.serialize(:yaml, :file => tmp)
18
- doc = Treat::Entities::Document(tmp)
19
- assert_equal File.read(tmp).length,
20
- doc.serialize(:yaml).length
21
- end
22
- # Test roundtrip Ruby -> XML -> Ruby -> XML.
23
- create_temp_file('xml') do |tmp|
24
- @doc.serialize(:xml, :file => tmp)
25
- doc = Treat::Entities::Document(tmp)
26
- assert_equal File.read(tmp).length,
27
- doc.serialize(:xml).length
28
- end
29
- end
30
-
31
- def test_visualizers
32
- assert_nothing_raised { @doc.visualize(:tree) }
33
- # assert_nothing_raised { @doc.visualize(:html) }
34
- assert_nothing_raised { @doc.visualize(:dot) }
35
- assert_nothing_raised { @doc.visualize(:short_value) }
36
- assert_nothing_raised { @sentence.visualize(:standoff) }
37
- end
38
-
39
- end
40
- end
41
- end
@@ -1,34 +0,0 @@
1
- module Treat
2
- module Tests
3
- class TestInflectors < Test::Unit::TestCase
4
-
5
- def test_lemmatizers
6
- # Not implemented yet.
7
- end
8
-
9
- def test_stemmers
10
- assert_equal 'run', 'running'.stem(:porter)
11
- assert_equal 'run', 'running'.stem(:porter_c)
12
- assert_equal 'run', 'running'.stem(:uea)
13
- end
14
-
15
- def test_conjugators
16
- assert_equal 'run', 'running'.infinitive
17
- assert_equal 'running', 'run'.present_participle
18
- assert_equal 'run', 'runs'.plural_verb
19
- end
20
-
21
- def test_declensors
22
- assert_equal 'inflections', 'inflection'.plural(:linguistics)
23
- assert_equal 'inflections', 'inflection'.plural(:english)
24
- assert_equal 'inflection', 'inflections'.singular(:english)
25
- end
26
-
27
- def test_ordinal_and_cardinal_words
28
- assert_equal 'twenty', 20.cardinal_words
29
- assert_equal 'twentieth', 20.ordinal_words
30
- end
31
-
32
- end
33
- end
34
- end
@@ -1,32 +0,0 @@
1
- module Treat
2
- module Tests
3
- class TestLexicalizers < Test::Unit::TestCase
4
-
5
- def test_category
6
- assert_equal :verb, 'visualize'.category(:from_tag, :tagger => :stanford)
7
- assert_equal :noun, 'inflection'.category(:from_tag, :tagger => :brill)
8
- assert_equal :adjective, 'sweet'.category(:from_tag, :tagger => :lingua)
9
- end
10
-
11
- def test_synsets
12
- assert_equal 'mature', 'ripe'.synonyms(:wordnet)[0]
13
- # assert_equal 'green', ' ripe'.antonyms(:wordnet)[0]
14
- assert_equal 'beverage', 'coffee'.hypernyms(:wordnet)[0]
15
- assert_equal 'gravy', 'juice'.hyponyms(:wordnet)[0]
16
- end
17
-
18
- def test_linkages
19
- sentence = 'Good is bad, but bad is not good'
20
- # assert_equal sentence.parse(:enju).linkages
21
- end
22
-
23
- def test_taggers
24
- assert_equal 'VBG', 'running'.tag(:stanford)
25
- assert_equal 'VBG', 'running'.tag(:brill)
26
- assert_equal 'VBG', 'running'.tag(:lingua)
27
- end
28
-
29
- end
30
-
31
- end
32
- end
@@ -1,50 +0,0 @@
1
- module Treat
2
- module Tests
3
- class TestProcessors < Test::Unit::TestCase
4
-
5
- def setup
6
- @doc = Treat::Tests::English::ShortDoc
7
- end
8
-
9
- def test_tokenizers
10
- words = ['A', 'sentence', 'to', 'tokenize']
11
- tokenize_map = lambda do |worker, o={}|
12
- 'A sentence to tokenize'.
13
- tokenize(worker, o).words.map { |w| w.value }
14
- end
15
- assert_equal words, tokenize_map.call(:macintyre)
16
- assert_equal words, tokenize_map.call(:multilingual)
17
- assert_equal words, tokenize_map.call(:perl)
18
- assert_equal words, tokenize_map.call(:punkt)
19
- assert_equal words, tokenize_map.call(:stanford, :silence => true)
20
- assert_equal words, tokenize_map.call(:tactful)
21
- end
22
-
23
- def test_segmenters
24
- sentences = ['This is sentence 1.', 'This is sentence 2.']
25
- segment_map = lambda do |worker,o={}|
26
- 'This is sentence 1. This is sentence 2.'.
27
- segment(worker, o).sentences.map { |s| s.value }
28
- end
29
- assert_equal sentences, segment_map.call(:punkt)
30
- assert_equal sentences, segment_map.call(:stanford, :silence => true)
31
- assert_equal sentences, segment_map.call(:tactful)
32
- end
33
-
34
- def test_chunkers
35
- title = 'This is a title!'
36
- paragraph = 'This is sentence 1. This is a potential sentence inside a pargraph describing the wonders of the world.'
37
- s = "This is a title!\nThis is sentence 1. This is a potential sentence inside a pargraph describing the wonders of the world.".chunk
38
- assert_equal title, s.title.value
39
- assert_equal paragraph, s.paragraph.value
40
- end
41
-
42
- def test_parsers
43
- assert_nothing_raised { @doc.segment.parse(:enju) }
44
- assert_nothing_raised { @doc.segment.parse(:stanford, :silence => true) }
45
- end
46
-
47
- end
48
-
49
- end
50
- end
data/test/tc_resources.rb DELETED
@@ -1,22 +0,0 @@
1
- module Treat
2
- module Tests
3
- class TestLanguages < Test::Unit::TestCase
4
-
5
- def test_languages
6
- assert_equal :eng, Treat::Languages.code(:english, 2)
7
- assert_equal :en, Treat::Languages.code(:english, 1)
8
- assert_equal :english, Treat::Languages.describe(:eng)
9
- assert_equal :english, Treat::Languages.describe(:en)
10
- end
11
-
12
- def test_tags
13
-
14
- end
15
-
16
- def test_dependencies
17
-
18
- end
19
-
20
- end
21
- end
22
- end
data/test/tc_treat.rb DELETED
@@ -1,60 +0,0 @@
1
- module Treat
2
- module Tests
3
- class TestTreat < Test::Unit::TestCase
4
-
5
- def test_edulcoration
6
- Treat.sweeten!
7
- assert_equal true, Treat.sweetened?
8
- Treat::Entities.list.each do |klass|
9
- next if klass == :symbol
10
- assert_nothing_raised do
11
- begin
12
- Object.send(:"#{klass.to_s.capitalize}")
13
- rescue Treat::Exception
14
- next
15
- rescue
16
- raise
17
- end
18
- end
19
- end
20
- Treat.unsweeten!
21
- assert_equal false, Treat.sweetened?
22
- Treat::Entities.list.each do |klass|
23
- next if klass == :symbol
24
- assert_raise(NoMethodError) do
25
- Object.send(:"#{klass.to_s.capitalize}")
26
- end
27
- end
28
- end
29
-
30
- def test_modules_loaded?
31
- ['exception',
32
- 'languages',
33
- 'entities',
34
- 'feature',
35
- 'category',
36
- 'group',
37
- 'formatters',
38
- 'processors',
39
- 'lexicalizers',
40
- 'extractors',
41
- 'inflectors',
42
- 'proxies'].each do |klass|
43
- assert_nothing_raised do
44
- Treat.const_get klass.capitalize
45
- end
46
- end
47
- end
48
-
49
- def test_paths
50
- assert_not_nil Treat.lib
51
- assert_not_nil Treat.test
52
- end
53
-
54
- def test_file_permissions
55
- assert_equal true, File.writable?(Treat.lib + '/../tmp')
56
- end
57
-
58
- end
59
- end
60
- end
data/test/tc_tree.rb DELETED
@@ -1,60 +0,0 @@
1
- module Treat
2
- module Tests
3
- class TestTree < Test::Unit::TestCase
4
- def setup
5
- @root = Treat::Tree::Node.new('root node', 'root')
6
- @branch = Treat::Tree::Node.new('branch node', 'branch')
7
- @sibling = Treat::Tree::Node.new('sibling node', 'sibling')
8
- @leaf = Treat::Tree::Node.new('leaf node', 'leaf')
9
- @root << @branch << @leaf
10
- @root << @sibling
11
- @leaf.link(@sibling, 'some dependency')
12
- end
13
- def test_branching
14
- assert_equal 2, @root.children.size
15
- assert_equal 4, @root.size
16
-
17
- assert_equal @branch, @root['branch']
18
- assert_equal @leaf, @root['branch']['leaf']
19
- assert_equal @sibling, @branch.right
20
-
21
- assert_equal @root, @root['branch'].parent
22
- assert_equal [@sibling], @branch.siblings
23
-
24
- assert_equal @root, @leaf.root
25
- end
26
- def test_removal
27
- assert_equal 1, @branch.remove_all!.size
28
- assert_equal @sibling, @root.remove!(@sibling)
29
- assert_equal @branch, @root.remove!(@branch.id)
30
- end
31
- def test_properties
32
-
33
- assert_equal 'root', @root.id
34
- assert_equal 'branch', @branch.id
35
- assert_equal 'leaf', @leaf.id
36
-
37
- assert_equal 'root node', @root.value
38
- assert_equal 'branch node', @branch.value
39
- assert_equal 'leaf node', @leaf.value
40
-
41
- assert_equal false, @root.has_features?
42
- assert_equal false, @branch.has_features?
43
- assert_equal false, @leaf.has_features?
44
-
45
- assert_equal true, @root.has_children?
46
- assert_equal true, @branch.has_children?
47
- assert_equal false, @leaf.has_children?
48
-
49
- assert_equal false, @root.has_parent?
50
- assert_equal true, @branch.has_parent?
51
- assert_equal true, @leaf.has_parent?
52
-
53
- assert_equal false, @root.has_dependencies?
54
- assert_equal false, @branch.has_dependencies?
55
- assert_equal true, @leaf.has_dependencies?
56
-
57
- end
58
- end
59
- end
60
- end
data/test/tests.rb DELETED
@@ -1,20 +0,0 @@
1
- require 'test/unit'
2
-
3
- $:.unshift File.join(File.dirname(__FILE__), "..", "lib")
4
-
5
- require 'treat'
6
-
7
- #$LOAD_PATH << '/ruby/gems/treat/test' # Remove for release
8
-
9
- require 'texts'
10
-
11
- # This is roughly in order of dependence.
12
- require 'tc_treat'
13
- require 'tc_tree'
14
- require 'tc_entity'
15
- require 'tc_resources'
16
- require 'tc_formatters'
17
- require 'tc_inflectors'
18
- require 'tc_lexicalizers'
19
- require 'tc_processors'
20
- #require 'tc_extractors'
data/test/texts.rb DELETED
@@ -1,19 +0,0 @@
1
- module Treat
2
- module Tests
3
-
4
- module English
5
- Collection = Treat::Entities::Collection "#{Treat.test}/texts/english"
6
- LongDoc = Treat::Entities::Document "#{Treat.test}/texts/english/long.txt"
7
- MediumDoc = Treat::Entities::Document "#{Treat.test}/texts/english/medium.txt"
8
- ShortDoc = Treat::Entities::Document "#{Treat.test}/texts/english/short.txt"
9
- Time = Treat::Entities::Phrase 'every Tuesday at 3:00'
10
- Date = Treat::Entities::Phrase '2011/02/01'
11
- Sentence = Treat::Entities::Sentence 'The quick brown fox jumped over the lazy dog.'
12
- Verb = Treat::Entities::Word 'run'
13
- Word = Treat::Entities::Word 'running'
14
- Noun = Treat::Entities::Word 'captain'
15
- Number = Treat::Entities::Number 20
16
- end
17
-
18
- end
19
- end
@@ -1,16 +0,0 @@
1
- Half-cocked Basel
2
- Stop-gap rules on banks’ trading books may add perilous complexity
3
-
4
- THE NEW-YEAR hangover throbbed agonisingly for investment bankers this year. Blame Basel 2.5, a new set of international rules which charges banks higher capital for the risks they run in their trading books (as opposed to their banking books, where they keep assets that they intend to hold to maturity). Those charges were too low before. And heaping higher costs on banks should please politicians and Joe Public. But they add another layer of complexity to banks’ risk management.
5
-
6
- Basel 2.5 came into force on December 31st in most European and major world financial jurisdictions. Switzerland applied the rules a year early, and the costs are substantial. Third-quarter figures for Credit Suisse show a 28% increase in risk-weighted assets, and hence capital charges, for its investment-banking activities purely because of Basel 2.5.
7
-
8
- The most notable laggard is America. US financial regulators do not oppose Basel 2.5, but it clashes with the Dodd-Frank act, America’s big wet blanket of a financial reform. Basel 2.5 uses credit ratings from recognised agencies such as Moody’s and Standard & Poor’s to calibrate capital charges. Dodd-Frank expressly forbids the use of such ratings agencies, whose poor judgments are held partly responsible for the crisis. Instead American regulators are working on their own cocktail of credit-risk calibrations for Basel 2.5, using market data and country-risk ratings from the OECD. Their solution is still months away from application (though not as distant as implementation by the Russians or Argentines).
9
-
10
- Basel 2.5 for the first time charges banks extra capital for the credit risk of what they hold in their trading portfolio (because the crisis showed that markets are not always liquid enough to be able to offload assets). That includes a charge for the risk that a counterparty goes bust. It also imposes heavy charges on securitised bundles of assets unless the credit risk of each piece of the bundle has an identifiable market price. Banks that have portfolios of trading positions which they reckon offset each other have to convince regulators that their risk models work or face being charged at a cruder, standardised rate.
11
-
12
- The problem with Basel 2.5, recognised by regulators and bankers alike, is its complexity. The risk of a trading portfolio must now be broken down into five “buckets”—value at risk (VaR), a measure of how much could be lost in an average trading day; stressed VaR (how much could be lost in extreme conditions); plus three types of credit risk ranging from the risk of single credits to those of securitised loans. Traders are understandably confused. For some banks, developing risk models and getting them approved is just too expensive: more complex businesses will be shut down. That will please those who want banks to be more boring.
13
-
14
- But unintended consequences will doubtless follow. Useful products may become less tradable. Trading of riskier products could migrate to unregulated entities. Banks may be tempted into new forms of regulatory arbitrage, by juggling assets between their trading book and their banking book. Worst of all, perhaps, is the increased risk of back-office bungling because of the extra complexity.
15
-
16
- Regulators recognise this risk. The Basel Committee on Banking Supervision, which drew up the rules and is also responsible for the full Basel 3 regime that will come into force in 2019, is still conducting what it calls a “fundamental review” of capital rules for banks’ trading books. Publication is not expected before March. Those sore heads will not soon clear.
Binary file
@@ -1,70 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE abiword PUBLIC "-//ABISOURCE//DTD AWML 1.0 Strict//EN" "http://www.abisource.com/awml.dtd">
3
- <abiword template="false" styles="unlocked" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:math="http://www.w3.org/1998/Math/MathML" xid-max="47" xmlns:dc="http://purl.org/dc/elements/1.1/" fileformat="1.0" xmlns:svg="http://www.w3.org/2000/svg" xmlns:awml="http://www.abisource.com/awml.dtd" xmlns="http://www.abisource.com/awml.dtd" xmlns:xlink="http://www.w3.org/1999/xlink" version="0.99.2" xml:space="preserve" props="dom-dir:ltr; document-footnote-restart-section:0; document-endnote-type:numeric; document-endnote-place-enddoc:1; document-endnote-initial:1; lang:en-US; document-endnote-restart-section:0; document-footnote-restart-page:0; document-footnote-type:numeric; document-footnote-initial:1; document-endnote-place-endsection:0">
4
- <!-- ======================================================================== -->
5
- <!-- This file is an AbiWord document. -->
6
- <!-- AbiWord is a free, Open Source word processor. -->
7
- <!-- More information about AbiWord is available at http://www.abisource.com/ -->
8
- <!-- You should not edit this file by hand. -->
9
- <!-- ======================================================================== -->
10
-
11
- <metadata>
12
- <m key="dc.format">application/x-abiword</m>
13
- <m key="abiword.generator">AbiWord</m>
14
- </metadata>
15
- <history version="1" edit-time="49" last-saved="1327547309" uid="e83e3112-47ca-11e1-8326-faa5dd588a80">
16
- <version id="1" started="1327547309" uid="0575e6ee-47cb-11e1-8326-faa5dd588a80" auto="0" top-xid="47"/>
17
- </history>
18
- <styles>
19
- <s type="P" name="Normal" followedby="Current Settings" props="font-family:Times New Roman; margin-top:0pt; color:000000; margin-left:0pt; text-position:normal; widows:2; font-style:normal; text-indent:0in; font-variant:normal; margin-right:0pt; lang:en-US; line-height:1.0; font-size:12pt; text-decoration:none; margin-bottom:0pt; font-weight:normal; bgcolor:transparent; text-align:left; font-stretch:normal"/>
20
- </styles>
21
- <pagesize pagetype="Letter" orientation="portrait" width="8.500000" height="11.000000" units="in" page-scale="1.000000"/>
22
- <section xid="46" props="page-margin-footer:0.5in; page-margin-header:0.5in">
23
- <p style="Normal" xid="47" props="text-align:left; dom-dir:ltr">Hungary's troubles</p>
24
- <p style="Normal" xid="1" props="text-align:left; dom-dir:ltr">Not just a rap on the knuckles</p>
25
- <p style="Normal" xid="2" props="text-align:left; dom-dir:ltr"></p>
26
- <p style="Normal" xid="3" props="text-align:left; dom-dir:ltr">THE pressure is piling up on the beleaguered Hungarian government. Today the European Commission threatened it with legal action over several new "cardinal" laws that would require a two-thirds majority in parliament to overturn.</p>
27
- <p style="Normal" xid="4" props="text-align:left; dom-dir:ltr"></p>
28
- <p style="Normal" xid="5" props="text-align:left; dom-dir:ltr">The commission is still considering the laws, but today it highlighted concerns over three issues:</p>
29
- <p style="Normal" xid="6" props="text-align:left; dom-dir:ltr"></p>
30
- <p style="Normal" xid="7" props="text-align:left; dom-dir:ltr"> - The independence of the central bank. Late last year the Hungarian parliament passed a law which expands the monetary council and takes the power to nominate deputies away from the governor and hands it to the prime minister. A separate law opens the door to a merger between the bank and the financial regulator.</p>
31
- <p style="Normal" xid="8" props="text-align:left; dom-dir:ltr"></p>
32
- <p style="Normal" xid="9" props="text-align:left; dom-dir:ltr"> - The judiciary. More than 200 judges over the age of 62 have been forced into retirement and hundreds more face the sack. The new National Judicial Authority is headed by Tünde Handó, a friend of the family of Viktor Orban, the prime minister.</p>
33
- <p style="Normal" xid="10" props="text-align:left; dom-dir:ltr"></p>
34
- <p style="Normal" xid="11" props="text-align:left; dom-dir:ltr"> - The independence of the national data authority.</p>
35
- <p style="Normal" xid="12" props="text-align:left; dom-dir:ltr"></p>
36
- <p style="Normal" xid="13" props="text-align:left; dom-dir:ltr">That wasn't all the commission had to say today. Hungary also received a ticking-off from Olli Rehn (pictured), the economic-affairs commissioner, for not doing enough to tackle its budget deficit. It may now lose access to EU funds.</p>
37
- <p style="Normal" xid="14" props="text-align:left; dom-dir:ltr"></p>
38
- <p style="Normal" xid="15" props="text-align:left; dom-dir:ltr">Slammed in Brussels, the Hungarian government is also under pressure at home. Earlier this week Gordon Bajnai, who served as Socialist prime minister from 2009-10, fired off a broadside that sent shockwaves through the political and media establishments.</p>
39
- <p style="Normal" xid="16" props="text-align:left; dom-dir:ltr"></p>
40
- <p style="Normal" xid="17" props="text-align:left; dom-dir:ltr">After a year and a half of government by the right-wing Fidesz party, wrote Mr Bajnai in a lengthy article on the website of the Patriotism and Progress Public Policy Foundation, democracy has been destroyed in Hungary. The country, he warned, is scarred by division and is drifting towards bankruptcy and away from Europe.</p>
41
- <p style="Normal" xid="18" props="text-align:left; dom-dir:ltr"></p>
42
- <p style="Normal" xid="19" props="text-align:left; dom-dir:ltr">Mr Bajnai called for a radical change of government and a complete political re-orientation. “A new government must have a programme readily at hand that can be applied without delay: a programme that promotes the republic, reconciliation, and recovery.” </p>
43
- <p style="Normal" xid="20" props="text-align:left; dom-dir:ltr"></p>
44
- <p style="Normal" xid="21" props="text-align:left; dom-dir:ltr">Fidesz is rattled by Mr Bajnai, who since leaving office has been teaching at Columbia University in New York. Understandably so. He headed a technocratic administration which stabilised the economy. Unlike his Socialist predecessor, Ferenc Gyurcsany, he was neither part of the old Communist elite nor connected to it by marriage, and so cannot be smeared as a "Komcsi". He is modern in outlook and well regarded internationally.</p>
45
- <p style="Normal" xid="22" props="text-align:left; dom-dir:ltr"></p>
46
- <p style="Normal" xid="23" props="text-align:left; dom-dir:ltr">Moreover, say those how know him, Mr Bajnai has little patience for the narcissistic exceptionalism that shapes Fidesz’s worldview. Exhibit A: the plaintive cry of Janos Martonyi, the foreign minister, who lamented recently: “The world will never understand our pains and spiritual wounds.” Such self-pity is unlikely to endear the Hungarian government to Brussels or Washington DC (to where it has sent an envoy this week to negotiate with the IMF).</p>
47
- <p style="Normal" xid="24" props="text-align:left; dom-dir:ltr"></p>
48
- <p style="Normal" xid="25" props="text-align:left; dom-dir:ltr">Fidesz won a two-thirds majority in 2010. But its support is evaporating, and analysts say there is a gap in the political market for a centrist pro-business party committed to democratic norms. Mr Bajnai, who has not ruled out a return to politics, would be an obvious candidate to lead it.</p>
49
- <p style="Normal" xid="26" props="text-align:left; dom-dir:ltr"></p>
50
- <p style="Normal" xid="27" props="text-align:left; dom-dir:ltr">Meanwhile, as Hungarians watch the value of their assets vaporise, in large part thanks to the government’s increasingly erratic policies, Mr Orban smirks his way through press conferences. Here he is dodging questions from a reporter from HVG, an economics weekly, about his responsibility for the crisis and trying to shift the blame to his old enemy Andras Simor, president of the central bank. The interview ran as follows:</p>
51
- <p style="Normal" xid="28" props="text-align:left; dom-dir:ltr"></p>
52
- <p style="Normal" xid="29" props="text-align:left; dom-dir:ltr">hvg.hu: Do you feel responsible for the falling/weakening forint?</p>
53
- <p style="Normal" xid="30" props="text-align:left; dom-dir:ltr"></p>
54
- <p style="Normal" xid="31" props="text-align:left; dom-dir:ltr">Mr Orban: You mean the president of the central bank? He did not comment on it.</p>
55
- <p style="Normal" xid="32" props="text-align:left; dom-dir:ltr"></p>
56
- <p style="Normal" xid="33" props="text-align:left; dom-dir:ltr">hvg.hu: No, you, Mr prime minister!</p>
57
- <p style="Normal" xid="34" props="text-align:left; dom-dir:ltr"></p>
58
- <p style="Normal" xid="35" props="text-align:left; dom-dir:ltr">Mr Orban: The personal responsibility of the president of the central bank was not discussed over the meeting.</p>
59
- <p style="Normal" xid="36" props="text-align:left; dom-dir:ltr"></p>
60
- <p style="Normal" xid="37" props="text-align:left; dom-dir:ltr">hvg.hu: You, your personal…!</p>
61
- <p style="Normal" xid="38" props="text-align:left; dom-dir:ltr"></p>
62
- <p style="Normal" xid="39" props="text-align:left; dom-dir:ltr">Mr Orban: That neither.</p>
63
- <p style="Normal" xid="40" props="text-align:left; dom-dir:ltr"></p>
64
- <p style="Normal" xid="41" props="text-align:left; dom-dir:ltr">Surrounded by yes-men and grinning flunkies, Mr Orban seems increasingly out of touch. His future will likely be decided not in the gilded corridors of the Hungarian parliament, but in Brussels and Washington DC.</p>
65
- <p style="Normal" xid="42" props="text-align:left; dom-dir:ltr"></p>
66
- <p style="Normal" xid="43" props="text-align:left; dom-dir:ltr">What happens next? If his hand is forced Mr Orban can probably endure policy reversals on the independence of the central bank and the data ombudsman. Sorry, he would say to his loyal followers: national crisis, what can you do.</p>
67
- <p style="Normal" xid="44" props="text-align:left; dom-dir:ltr"></p>
68
- <p style="Normal" xid="45" props="text-align:left; dom-dir:ltr">The dismantling of the judiciary would be another matter. If outsiders keep up the pressure and the judicial changes are judged to be in breach of the EU treaty, Mr Orban would be in a tricky spot. It’s hard to see how he could declare the 200-plus judges his government has forced into retirement ready for office after all, and still sit in his own.</p>
69
- </section>
70
- </abiword>
@@ -1,24 +0,0 @@
1
- <html>
2
- A short biography of Michel Foucault
3
-
4
- Michel Foucault, born Paul-Michel Foucault (15 October 1926 – 25 June 1984), was a French philosopher, social theorist and historian of ideas. He held a chair at the College de France with the title \"History of Systems of Thought,\" and lectured at the University at Buffalo and the University of California, Berkeley.
5
-
6
- Early life
7
-
8
- Paul-Michel Foucault was born on 15 October 1926 in Poitiers, France, to a notable provincial family. His father, Paul Foucault, was an eminent surgeon and hoped his son would join him in the profession. His early education was a mix of success and mediocrity until he attended the Jesuit Collège Saint-Stanislas, where he excelled. During this period, Poitiers was part of Vichy France and later came under German occupation. Foucault learned philosophy with Louis Girard.
9
- After World War II, Foucault was admitted to the prestigious École Normale Supérieure (rue d'Ulm), the traditional gateway to an academic career in the humanities in France.
10
-
11
- The École Normale Supérieure
12
-
13
- Foucault's personal life during the École Normale was difficult — he suffered from acute depression due to distress over his homosexuality and made several suicide attempts. As a result, he was taken to see a psychiatrist. During this time, Foucault became fascinated with psychology. He earned a licence (degree equivalent to BA) in psychology, a very new qualification in France at the time, in addition to a degree in philosophy, in 1952. He was involved in clinical psychology, which exposed him to thinkers such as Ludwig Binswanger.
14
-
15
- Foucault was a member of the French Communist Party from 1950 to 1953. He was inducted into the party by his mentor Louis Althusser, but soon became disillusioned with both the politics and the philosophy of the party. Historian Emmanuel Le Roy Ladurie reported that Foucault never actively participated in his cell, unlike many of his fellow party members.[citation needed]
16
-
17
- Early career
18
-
19
- Foucault failed at the agrégation in 1950 but took it again and succeeded the following year. After a brief period lecturing at the École Normale, he took up a position at the Université Lille Nord de France, where from 1953 to 1954 he taught psychology. In 1954 Foucault published his first book, Maladie mentale et personnalité, a work he later disavowed. At this point, Foucault was not interested in a teaching career, and undertook a lengthy exile from France. In 1954 he served France as a cultural delegate to the University of Uppsala in Sweden (a position arranged for him by Georges Dumézil, who was to become a friend and mentor). He submitted his doctoral thesis in Uppsala, but it was rejected there. In 1958 Foucault left Uppsala and briefly held positions at Warsaw University and at the University of Hamburg.
20
-
21
- Foucault returned to France in 1960 to complete his doctorate and take up a post in philosophy at the University of Clermont-Ferrand. There he met philosopher Daniel Defert, who would become his partner of twenty years. In 1961 he earned his doctorate by submitting two theses (as is customary in France): a "major" thesis entitled Folie et déraison: Histoire de la folie à l'âge classique (Madness and Insanity: History of Madness in the Classical Age) and a "secondary" thesis that involved a translation of, and commentary on Kant's Anthropology from a Pragmatic Point of View. Folie et déraison (Madness and Insanity – published in an abridged edition in English as Madness and Civilization and finally published unabridged as "History of Madness" by Routledge in 2006) was extremely well received. Foucault continued a vigorous publishing schedule. In 1963 he published Naissance de la Clinique (Birth of the Clinic), Raymond Roussel, and a reissue of his 1954 volume (now entitled Maladie mentale et psychologie or, in English, "Mental Illness and Psychology"), which again, he later disavowed.
22
-
23
- After Defert was posted to Tunisia for his military service, Foucault moved to a position at the University of Tunis in 1965. He published Les Mots et les choses (The Order of Things) during the height of interest in structuralism in 1966, and Foucault was quickly grouped with scholars such as Jacques Lacan, Claude Lévi-Strauss, and Roland Barthes as the newest, latest wave of thinkers set to topple the existentialism popularized by Jean-Paul Sartre. Foucault made a number of skeptical comments about Marxism, which outraged a number of left wing critics, but later firmly rejected the "structuralist" label. He was still in Tunis during the May 1968 student riots, where he was profoundly affected by a local student revolt earlier in the same year. In the Autumn of 1968 he returned to France, where he published L'archéologie du savoir (The Archaeology of Knowledge) – a methodological treatise that included a response to his critics – in 1969.
24
- </html>