ruby_wordcram 1.0.1 → 2.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -0
  3. data/.mvn/extensions.xml +8 -0
  4. data/.mvn/wrapper/maven-wrapper.properties +1 -0
  5. data/Rakefile +28 -5
  6. data/docs/_posts/2017-03-07-getting_started.md +3 -2
  7. data/docs/_posts/2017-03-07-under_the_hood.md +33 -0
  8. data/lib/WordCram.jar +0 -0
  9. data/lib/jsoup-1.10.2.jar +0 -0
  10. data/lib/ruby_wordcram/version.rb +1 -1
  11. data/lib/ruby_wordcram.rb +1 -2
  12. data/pom.rb +53 -0
  13. data/pom.xml +87 -0
  14. data/ruby_wordcram.gemspec +1 -2
  15. data/src/cue/lang/Counter.java +141 -0
  16. data/src/cue/lang/IterableText.java +10 -0
  17. data/src/cue/lang/NGramIterator.java +151 -0
  18. data/src/cue/lang/SentenceIterator.java +86 -0
  19. data/src/cue/lang/WordIterator.java +60 -0
  20. data/src/cue/lang/stop/StopWords.java +114 -0
  21. data/src/cue/lang/stop/arabic +351 -0
  22. data/src/cue/lang/stop/armenian +45 -0
  23. data/src/cue/lang/stop/catalan +219 -0
  24. data/src/cue/lang/stop/croatian +2024 -0
  25. data/src/cue/lang/stop/czech +256 -0
  26. data/src/cue/lang/stop/danish +94 -0
  27. data/src/cue/lang/stop/dutch +107 -0
  28. data/src/cue/lang/stop/english +183 -0
  29. data/src/cue/lang/stop/esperanto +180 -0
  30. data/src/cue/lang/stop/farsi +966 -0
  31. data/src/cue/lang/stop/finnish +235 -0
  32. data/src/cue/lang/stop/french +543 -0
  33. data/src/cue/lang/stop/german +231 -0
  34. data/src/cue/lang/stop/greek +637 -0
  35. data/src/cue/lang/stop/hebrew +220 -0
  36. data/src/cue/lang/stop/hindi +97 -0
  37. data/src/cue/lang/stop/hungarian +202 -0
  38. data/src/cue/lang/stop/italian +279 -0
  39. data/src/cue/lang/stop/latin +1 -0
  40. data/src/cue/lang/stop/norwegian +176 -0
  41. data/src/cue/lang/stop/polish +138 -0
  42. data/src/cue/lang/stop/portuguese +204 -0
  43. data/src/cue/lang/stop/romanian +284 -0
  44. data/src/cue/lang/stop/russian +652 -0
  45. data/src/cue/lang/stop/slovak +110 -0
  46. data/src/cue/lang/stop/slovenian +448 -0
  47. data/src/cue/lang/stop/spanish +308 -0
  48. data/src/cue/lang/stop/swedish +114 -0
  49. data/src/cue/lang/stop/turkish +117 -0
  50. data/src/cue/lang/unicode/BlockUtil.java +103 -0
  51. data/src/cue/lang/unicode/Normalizer.java +55 -0
  52. data/src/cue/lang/unicode/Normalizer6.java +32 -0
  53. data/src/license.txt +201 -0
  54. data/src/wordcram/Anglers.java +137 -0
  55. data/src/wordcram/BBTree.java +133 -0
  56. data/src/wordcram/BBTreeBuilder.java +61 -0
  57. data/src/wordcram/Colorers.java +52 -0
  58. data/src/wordcram/EngineWord.java +73 -0
  59. data/src/wordcram/Fonters.java +17 -0
  60. data/src/wordcram/HsbWordColorer.java +28 -0
  61. data/src/wordcram/ImageShaper.java +91 -0
  62. data/src/wordcram/Observer.java +9 -0
  63. data/src/wordcram/PlacerHeatMap.java +134 -0
  64. data/src/wordcram/Placers.java +74 -0
  65. data/src/wordcram/PlottingWordNudger.java +38 -0
  66. data/src/wordcram/PlottingWordPlacer.java +36 -0
  67. data/src/wordcram/ProcessingWordRenderer.java +42 -0
  68. data/src/wordcram/RandomWordNudger.java +44 -0
  69. data/src/wordcram/RenderOptions.java +10 -0
  70. data/src/wordcram/ShapeBasedPlacer.java +66 -0
  71. data/src/wordcram/Sizers.java +54 -0
  72. data/src/wordcram/SketchCallbackObserver.java +70 -0
  73. data/src/wordcram/SpiralWordNudger.java +31 -0
  74. data/src/wordcram/SvgWordRenderer.java +110 -0
  75. data/src/wordcram/SwirlWordPlacer.java +25 -0
  76. data/src/wordcram/UpperLeftWordPlacer.java +27 -0
  77. data/src/wordcram/WaveWordPlacer.java +25 -0
  78. data/src/wordcram/Word.java +357 -0
  79. data/src/wordcram/WordAngler.java +20 -0
  80. data/src/wordcram/WordArray.java +18 -0
  81. data/src/wordcram/WordBag.java +31 -0
  82. data/src/wordcram/WordColorer.java +25 -0
  83. data/src/wordcram/WordCounter.java +96 -0
  84. data/src/wordcram/WordCram.java +920 -0
  85. data/src/wordcram/WordCramEngine.java +196 -0
  86. data/src/wordcram/WordFonter.java +24 -0
  87. data/src/wordcram/WordNudger.java +44 -0
  88. data/src/wordcram/WordPlacer.java +44 -0
  89. data/src/wordcram/WordRenderer.java +10 -0
  90. data/src/wordcram/WordShaper.java +78 -0
  91. data/src/wordcram/WordSizer.java +46 -0
  92. data/src/wordcram/WordSkipReason.java +42 -0
  93. data/src/wordcram/WordSorterAndScaler.java +31 -0
  94. data/src/wordcram/WordSource.java +5 -0
  95. data/src/wordcram/text/Html.java +15 -0
  96. data/src/wordcram/text/Html2Text.java +17 -0
  97. data/src/wordcram/text/Text.java +15 -0
  98. data/src/wordcram/text/TextFile.java +23 -0
  99. data/src/wordcram/text/TextSource.java +5 -0
  100. data/src/wordcram/text/WebPage.java +23 -0
  101. metadata +94 -5
  102. data/lib/cue.language.jar +0 -0
  103. data/lib/jsoup-1.7.2.jar +0 -0
  104. data/vendors/Rakefile +0 -51
@@ -0,0 +1,151 @@
1
+ /*
2
+ Copyright 2009 IBM Corp
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+ package cue.lang;
17
+
18
+ import java.util.Iterator;
19
+ import java.util.LinkedList;
20
+ import java.util.Locale;
21
+ import java.util.NoSuchElementException;
22
+
23
+ import cue.lang.stop.StopWords;
24
+
25
+ /**
26
+ * Construct with a {@link String}, some integer n, and a {@link Locale};
27
+ * retrieve a sequence of {@link String}s, each of which has n words that appear
28
+ * contiguously within a sentence. "Words" are as defined by the
29
+ * {@link WordIterator}.
30
+ *
31
+ * <p>
32
+ * If you don't provide a {@link Locale}, you get the default {@link Locale} for
33
+ * your system, which may or may not be what you want. The {@link Locale} is
34
+ * used by a {@link SentenceIterator} to find sentence breaks.
35
+ *
36
+ * <p>
37
+ * Example:
38
+ *
39
+ * <pre>
40
+ * final String lyric = "This happened once before. I came to your door. No reply.";
41
+ * for (final String s : new NGramIterator(3, lyric)) {
42
+ * System.out.println(s);
43
+ * }
44
+ * for (final String s : new NGramIterator(2, lyric)) {
45
+ * System.out.println(s);
46
+ * }
47
+ *
48
+ * This happened once
49
+ * happened once before
50
+ * I came to
51
+ * came to your
52
+ * to your door
53
+ *
54
+ * This happened
55
+ * happened once
56
+ * once before
57
+ * I came
58
+ * came to
59
+ * to your
60
+ * your door
61
+ * No reply
62
+ * </pre>
63
+ *
64
+ * @author Jonathan Feinberg <jdf@us.ibm.com>
65
+ *
66
+ */
67
+ public class NGramIterator extends IterableText {
68
+ private final SentenceIterator sentenceIterator;
69
+ private final LinkedList<String> grams = new LinkedList<String>();
70
+ private final int n;
71
+ private final StopWords stopWords;
72
+
73
+ private String next;
74
+ private Iterator<String> currentWordIterator;
75
+
76
+ public NGramIterator(final int n, final String text) {
77
+ this(n, text, Locale.getDefault());
78
+ }
79
+
80
+ public NGramIterator(final int n, final String text, final Locale locale) {
81
+ this(n, text, locale, null);
82
+ }
83
+
84
+ public NGramIterator(final int n, final String text, final Locale locale,
85
+ final StopWords stopWords) {
86
+ this.n = n;
87
+ this.sentenceIterator = new SentenceIterator(text, locale);
88
+ this.stopWords = stopWords;
89
+ loadNext();
90
+ }
91
+
92
+ @Override
93
+ public void remove() {
94
+ throw new UnsupportedOperationException();
95
+ }
96
+
97
+ @Override
98
+ public String next() {
99
+ if (next == null) {
100
+ throw new NoSuchElementException();
101
+ }
102
+ final String result = next;
103
+ loadNext();
104
+ return result;
105
+ }
106
+
107
+ @Override
108
+ public boolean hasNext() {
109
+ return next != null;
110
+ }
111
+
112
+ private void loadNext() {
113
+ next = null;
114
+ if (!grams.isEmpty()) {
115
+ grams.pop();
116
+ }
117
+ while (grams.size() < n) {
118
+ while (currentWordIterator == null
119
+ || !currentWordIterator.hasNext()) {
120
+ if (!sentenceIterator.hasNext()) {
121
+ return;
122
+ }
123
+ grams.clear();
124
+ currentWordIterator = new WordIterator(sentenceIterator.next())
125
+ .iterator();
126
+ for (int i = 0; currentWordIterator.hasNext() && i < n - 1; i++) {
127
+ maybeAddWord();
128
+ }
129
+ }
130
+ // now grams has n-1 words in it and currentWordIterator hasNext
131
+ maybeAddWord();
132
+ }
133
+ final StringBuilder sb = new StringBuilder();
134
+ for (final String gram : grams) {
135
+ if (sb.length() > 0) {
136
+ sb.append(" ");
137
+ }
138
+ sb.append(gram);
139
+ }
140
+ next = sb.toString();
141
+ }
142
+
143
+ private void maybeAddWord() {
144
+ final String nextWord = currentWordIterator.next();
145
+ if (stopWords != null && stopWords.isStopWord(nextWord)) {
146
+ grams.clear();
147
+ } else {
148
+ grams.add(nextWord);
149
+ }
150
+ }
151
+ }
@@ -0,0 +1,86 @@
1
+ /*
2
+ Copyright 2009 IBM Corp
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+ package cue.lang;
17
+
18
+ import java.text.BreakIterator;
19
+ import java.util.Locale;
20
+ import java.util.NoSuchElementException;
21
+ import java.util.regex.Pattern;
22
+
23
+ /**
24
+ * Construct with a {@link String}; retrieve a sequence of {@link String}s, each
25
+ * of which is a "sentence" according to Java's built-in model for the given
26
+ * {@link Locale}.
27
+ *
28
+ * @author Jonathan Feinberg <jdf@us.ibm.com>
29
+ *
30
+ */
31
+ public class SentenceIterator extends IterableText {
32
+ private final String text;
33
+ private final BreakIterator breakIterator;
34
+ int start, end;
35
+
36
+ /**
37
+ * Uses the default {@link Locale} for the running instance of the JVM.
38
+ *
39
+ * @param text
40
+ */
41
+ public SentenceIterator(final String text) {
42
+ this(text, Locale.getDefault());
43
+ }
44
+
45
+ public SentenceIterator(final String text, final Locale locale) {
46
+ this.text = text;
47
+ breakIterator = BreakIterator.getSentenceInstance(locale);
48
+ breakIterator.setText(text);
49
+ start = end = breakIterator.first();
50
+ advance();
51
+ }
52
+
53
+ private static final Pattern ABBREVS = Pattern
54
+ .compile("(?:Mrs?|Ms|Dr|Rev)\\.\\s*$");
55
+
56
+ private void advance() {
57
+ start = end;
58
+ while (hasNext()
59
+ && ((end == start) || ABBREVS.matcher(
60
+ text.substring(start, end)).find())) {
61
+ end = breakIterator.next();
62
+ }
63
+ }
64
+
65
+ @Override
66
+ public void remove() {
67
+ throw new UnsupportedOperationException();
68
+ }
69
+
70
+ @Override
71
+ public String next() {
72
+ if (!hasNext()) {
73
+ throw new NoSuchElementException();
74
+ }
75
+ final String result = text.substring(start, end)
76
+ .replaceAll("\\s+", " ");
77
+ advance();
78
+ return result;
79
+ }
80
+
81
+ @Override
82
+ public final boolean hasNext() {
83
+ return end != BreakIterator.DONE;
84
+ }
85
+
86
+ }
@@ -0,0 +1,60 @@
1
+ /*
2
+ Copyright 2009 IBM Corp
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+ package cue.lang;
17
+
18
+ import java.util.NoSuchElementException;
19
+ import java.util.regex.Matcher;
20
+ import java.util.regex.Pattern;
21
+
22
+ /**
23
+ *
24
+ * @author Jonathan Feinberg <jdf@us.ibm.com>
25
+ *
26
+ */
27
+ public class WordIterator extends IterableText {
28
+ private static final String LETTER = "[@+\\p{javaLetterOrDigit}]";
29
+ private static final String JOINER = "[-.:/'’\\p{M}\\u2032\\u00A0\\u200C\\u200D~]";
30
+ private static final Pattern WORD = Pattern.compile(LETTER + "+(" + JOINER + "+" + LETTER
31
+ + "+)*");
32
+
33
+ private final Matcher m;
34
+ private boolean hasNext;
35
+
36
+ public WordIterator(final String text) {
37
+ this.m = WORD.matcher(text == null ? "" : text);
38
+ hasNext = m.find();
39
+ }
40
+
41
+ @Override
42
+ public void remove() {
43
+ throw new UnsupportedOperationException();
44
+ }
45
+
46
+ @Override
47
+ public String next() {
48
+ if (!hasNext) {
49
+ throw new NoSuchElementException();
50
+ }
51
+ final String s = m.group();
52
+ hasNext = m.find();
53
+ return s;
54
+ }
55
+
56
+ @Override
57
+ public boolean hasNext() {
58
+ return hasNext;
59
+ }
60
+ }
@@ -0,0 +1,114 @@
1
+ /*
2
+ Copyright 2009 IBM Corp
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License.
6
+ You may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, software
11
+ distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and
14
+ limitations under the License.
15
+ */
16
+
17
+ package cue.lang.stop;
18
+
19
+ import java.io.BufferedReader;
20
+ import java.io.IOException;
21
+ import java.io.InputStream;
22
+ import java.io.InputStreamReader;
23
+ import java.nio.charset.Charset;
24
+ import java.util.Collection;
25
+ import java.util.HashSet;
26
+ import java.util.Locale;
27
+ import java.util.Set;
28
+
29
+ import cue.lang.Counter;
30
+ import cue.lang.WordIterator;
31
+
32
+ /**
33
+ *
34
+ * @author Jonathan Feinberg <jdf@us.ibm.com>
35
+ *
36
+ */
37
+ public enum StopWords {
38
+ Arabic(), Armenian(), Catalan(true), Croatian(), Czech(), Dutch(), //
39
+ Danish(), English(), Esperanto(), Farsi(), Finnish(), //
40
+ French(true), German(), Greek(), Hindi(), Hungarian(), //
41
+ Italian(), Latin(), Norwegian(), Polish(), Portuguese(), //
42
+ Romanian(), Russian(), Slovenian(), Slovak(), Spanish(), //
43
+ Swedish(), Hebrew(), Turkish(), Custom();
44
+
45
+ public static StopWords guess(final String text) {
46
+ return guess(new Counter<>(new WordIterator(text)));
47
+ }
48
+
49
+ public static StopWords guess(final Counter<String> wordCounter) {
50
+ return guess(wordCounter.getMostFrequent(50));
51
+ }
52
+
53
+ public static StopWords guess(final Collection<String> words) {
54
+ StopWords currentWinner = null;
55
+ int currentMax = 0;
56
+ for (final StopWords stopWords : StopWords.values()) {
57
+ int count = 0;
58
+ count = words.stream().filter((word) -> (stopWords.isStopWord(word))).map((_item) -> 1).reduce(count, Integer::sum);
59
+ if (count > currentMax) {
60
+ currentWinner = stopWords;
61
+ currentMax = count;
62
+ }
63
+ }
64
+ return currentWinner;
65
+ }
66
+
67
+ public final boolean stripApostrophes;
68
+ private final Set<String> stopwords = new HashSet<>();
69
+
70
+ private StopWords() {
71
+ this(false);
72
+ }
73
+
74
+ private StopWords(final boolean stripApostrophes) {
75
+ this.stripApostrophes = stripApostrophes;
76
+ loadLanguage();
77
+ }
78
+
79
+ public boolean isStopWord(final String s) {
80
+ if (s.length() == 1) {
81
+ return true;
82
+ }
83
+ // check rightquotes as apostrophes
84
+ return stopwords.contains(s.replace('\u2019', '\'').toLowerCase(Locale.ENGLISH));
85
+ }
86
+
87
+ private void loadLanguage() {
88
+ final String wordlistResource = name().toLowerCase(Locale.ENGLISH);
89
+ if (!wordlistResource.equals("custom")) {
90
+ readStopWords(getClass().getResourceAsStream(wordlistResource),
91
+ Charset.forName("UTF-8"));
92
+ }
93
+ }
94
+
95
+ public void readStopWords(final InputStream inputStream, final Charset encoding) {
96
+ try {
97
+ try (BufferedReader in = new BufferedReader(new InputStreamReader(inputStream,
98
+ encoding))) {
99
+ String line;
100
+ while ((line = in.readLine()) != null) {
101
+ line = line.replaceAll("\\|.*", "").trim();
102
+ if (line.length() == 0) {
103
+ continue;
104
+ }
105
+ for (final String w : line.split("\\s+")) {
106
+ stopwords.add(w.toLowerCase(Locale.ENGLISH));
107
+ }
108
+ }
109
+ }
110
+ } catch (final IOException e) {
111
+ throw new RuntimeException(e);
112
+ }
113
+ }
114
+ }
@@ -0,0 +1,351 @@
1
+ إلى
2
+ أو
3
+ إننا
4
+ إن
5
+ أن
6
+ ب
7
+ ا
8
+ أ
9
+ ،
10
+ عشر
11
+ عبد
12
+ عدد
13
+ عدة
14
+ عشرة
15
+ عدم
16
+ عام
17
+ عاما
18
+ عرفات
19
+ عن
20
+ عند
21
+ عمان
22
+ عندما
23
+ على
24
+ علي
25
+ عليه
26
+ عليها
27
+ عملية
28
+ زيارة
29
+ سبتمبر
30
+ ساراييفو
31
+ سنة
32
+ سوريا
33
+ سنوات
34
+ تشرين
35
+ تم
36
+ تموز
37
+ ضد
38
+ بعد
39
+ بعض
40
+ اعادة
41
+ اعلن
42
+ اعلنت
43
+ حزب
44
+ حزيران
45
+ بسبب
46
+ اسرائيل
47
+ حسين
48
+ حتى
49
+ اتفاق
50
+ صرب
51
+ اذا
52
+ احد
53
+ اثر
54
+ غزة
55
+ برس
56
+ باسم
57
+ اجتماع
58
+ غدا
59
+ شخصا
60
+ صباح
61
+ اطار
62
+ اربعة
63
+ بغداد
64
+ اخرى
65
+ باريس
66
+ رابين
67
+ شرق
68
+ بان
69
+ ابو
70
+ اجل
71
+ غير
72
+ حركة
73
+ رئيس
74
+ جديدة
75
+ اطلاق
76
+ بشكل
77
+ بطولة
78
+ صحيفة
79
+ حاليا
80
+ بن
81
+ به
82
+ ثم
83
+ اف
84
+ ان
85
+ او
86
+ اي
87
+ بها
88
+ جهة
89
+ صفر
90
+ حيث
91
+ اكد
92
+ الا
93
+ اما
94
+ العسكرية
95
+ العراق
96
+ العاصمة
97
+ العربية
98
+ العراقي
99
+ العراقية
100
+ العام
101
+ العالم
102
+ العلاقات
103
+ العمل
104
+ امس
105
+ السعودية
106
+ الساعة
107
+ السبت
108
+ السابق
109
+ روسيا
110
+ السلطة
111
+ السلطات
112
+ السلام
113
+ التعاون
114
+ التحرير
115
+ التى
116
+ التي
117
+ اكتوبر
118
+ دورة
119
+ اكثر
120
+ ايار
121
+ ايضا
122
+ الجزائر
123
+ حماس
124
+ الاسرائيلي
125
+ الاسرائيلية
126
+ الاسبوع
127
+ الاسلحة
128
+ الاسلامية
129
+ ذكرت
130
+ الاتحاد
131
+ الاتفاق
132
+ ثلاثة
133
+ الحرب
134
+ الاحد
135
+ الذاتي
136
+ الشرطة
137
+ الاربعاء
138
+ الغربية
139
+ الخارجية
140
+ الاردن
141
+ الشرق
142
+ ايران
143
+ الحدود
144
+ الرئيس
145
+ الاخيرة
146
+ الثاني
147
+ الثانية
148
+ الاثنين
149
+ شمال
150
+ بيان
151
+ دمشق
152
+ الذى
153
+ الذي
154
+ الان
155
+ امام
156
+ ايام
157
+ خلال
158
+ الشيخ
159
+ الجيش
160
+ الدور
161
+ الضفة
162
+ الجمعة
163
+ بيريز
164
+ الاوسط
165
+ الروسي
166
+ البوسنة
167
+ الروسية
168
+ بيروت
169
+ الانتخابات
170
+ البلاد
171
+ الدفاع
172
+ الثلثاء
173
+ الانباء
174
+ الثلاثاء
175
+ الاوروبي
176
+ حوالى
177
+ الذين
178
+ الدول
179
+ الحكم
180
+ الامم
181
+ الامن
182
+ الاول
183
+ الدولة
184
+ الخليج
185
+ الخميس
186
+ الاميركي
187
+ الاميركية
188
+ الدولي
189
+ الاولى
190
+ الدولية
191
+ الحكومة
192
+ بين
193
+ ذلك
194
+ دول
195
+ دون
196
+ حول
197
+ حين
198
+ الف
199
+ الى
200
+ انه
201
+ اول
202
+ ضمن
203
+ جنوب
204
+ دولة
205
+ انها
206
+ جميع
207
+ الوزراء
208
+ المتحدث
209
+ المتحدة
210
+ دولار
211
+ النار
212
+ الوضع
213
+ القدس
214
+ المحتلة
215
+ المصدر
216
+ المباراة
217
+ المصري
218
+ الماضي
219
+ المصرية
220
+ المرحلة
221
+ القدم
222
+ اللجنة
223
+ المجلس
224
+ الفرنسي
225
+ الفرنسية
226
+ القاهرة
227
+ المدينة
228
+ المانيا
229
+ الوطنية
230
+ المجموعة
231
+ الفلسطيني
232
+ الفلسطينية
233
+ الفلسطينيين
234
+ الوقت
235
+ المقرر
236
+ القوات
237
+ النهائي
238
+ المقبل
239
+ المنطقة
240
+ الولايات
241
+ المفاوضات
242
+ الملك
243
+ اليمن
244
+ اليوم
245
+ ايلول
246
+ الكويت
247
+ ـ
248
+ ف
249
+ و
250
+ و6
251
+ قد
252
+ لا
253
+ ما
254
+ مع
255
+ وزارة
256
+ وزير
257
+ مساء
258
+ قتل
259
+ كرة
260
+ مصر
261
+ هذا
262
+ فاز
263
+ كأس
264
+ ياسر
265
+ قرار
266
+ مصدر
267
+ واحد
268
+ قطاع
269
+ مصادر
270
+ مباراة
271
+ مبارك
272
+ واضاف
273
+ واضافت
274
+ فرانس
275
+ واشنطن
276
+ فان
277
+ قبل
278
+ قال
279
+ كان
280
+ لدى
281
+ نحو
282
+ هذه
283
+ وان
284
+ محمد
285
+ واكد
286
+ يذكر
287
+ مجلس
288
+ فرنسا
289
+ كريستوفر
290
+ كانت
291
+ واوضح
292
+ لبنان
293
+ مايو
294
+ مدينة
295
+ مجموعة
296
+ كانون
297
+ فى
298
+ في
299
+ كل
300
+ لم
301
+ لن
302
+ له
303
+ من
304
+ هو
305
+ هي
306
+ قوة
307
+ كما
308
+ لها
309
+ منذ
310
+ وقد
311
+ ولا
312
+ نفسه
313
+ موسكو
314
+ مقتل
315
+ لقاء
316
+ لكرة
317
+ نقطة
318
+ قوات
319
+ مقابل
320
+ لندن
321
+ هناك
322
+ وقال
323
+ وكان
324
+ منطقة
325
+ منظمة
326
+ نهاية
327
+ وكالة
328
+ وقالت
329
+ وكانت
330
+ للامم
331
+ فيه
332
+ كلم
333
+ لكن
334
+ وفي
335
+ وقف
336
+ ولم
337
+ ومن
338
+ وهو
339
+ وهي
340
+ يوم
341
+ فيها
342
+ منها
343
+ مليار
344
+ لوكالة
345
+ يكون
346
+ يمكن
347
+ كلينتون
348
+ مليون
349
+ يوليو
350
+ يونيو
351
+ نيويورك