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.
- checksums.yaml +4 -4
- data/.gitignore +3 -0
- data/.mvn/extensions.xml +8 -0
- data/.mvn/wrapper/maven-wrapper.properties +1 -0
- data/Rakefile +28 -5
- data/docs/_posts/2017-03-07-getting_started.md +3 -2
- data/docs/_posts/2017-03-07-under_the_hood.md +33 -0
- data/lib/WordCram.jar +0 -0
- data/lib/jsoup-1.10.2.jar +0 -0
- data/lib/ruby_wordcram/version.rb +1 -1
- data/lib/ruby_wordcram.rb +1 -2
- data/pom.rb +53 -0
- data/pom.xml +87 -0
- data/ruby_wordcram.gemspec +1 -2
- data/src/cue/lang/Counter.java +141 -0
- data/src/cue/lang/IterableText.java +10 -0
- data/src/cue/lang/NGramIterator.java +151 -0
- data/src/cue/lang/SentenceIterator.java +86 -0
- data/src/cue/lang/WordIterator.java +60 -0
- data/src/cue/lang/stop/StopWords.java +114 -0
- data/src/cue/lang/stop/arabic +351 -0
- data/src/cue/lang/stop/armenian +45 -0
- data/src/cue/lang/stop/catalan +219 -0
- data/src/cue/lang/stop/croatian +2024 -0
- data/src/cue/lang/stop/czech +256 -0
- data/src/cue/lang/stop/danish +94 -0
- data/src/cue/lang/stop/dutch +107 -0
- data/src/cue/lang/stop/english +183 -0
- data/src/cue/lang/stop/esperanto +180 -0
- data/src/cue/lang/stop/farsi +966 -0
- data/src/cue/lang/stop/finnish +235 -0
- data/src/cue/lang/stop/french +543 -0
- data/src/cue/lang/stop/german +231 -0
- data/src/cue/lang/stop/greek +637 -0
- data/src/cue/lang/stop/hebrew +220 -0
- data/src/cue/lang/stop/hindi +97 -0
- data/src/cue/lang/stop/hungarian +202 -0
- data/src/cue/lang/stop/italian +279 -0
- data/src/cue/lang/stop/latin +1 -0
- data/src/cue/lang/stop/norwegian +176 -0
- data/src/cue/lang/stop/polish +138 -0
- data/src/cue/lang/stop/portuguese +204 -0
- data/src/cue/lang/stop/romanian +284 -0
- data/src/cue/lang/stop/russian +652 -0
- data/src/cue/lang/stop/slovak +110 -0
- data/src/cue/lang/stop/slovenian +448 -0
- data/src/cue/lang/stop/spanish +308 -0
- data/src/cue/lang/stop/swedish +114 -0
- data/src/cue/lang/stop/turkish +117 -0
- data/src/cue/lang/unicode/BlockUtil.java +103 -0
- data/src/cue/lang/unicode/Normalizer.java +55 -0
- data/src/cue/lang/unicode/Normalizer6.java +32 -0
- data/src/license.txt +201 -0
- data/src/wordcram/Anglers.java +137 -0
- data/src/wordcram/BBTree.java +133 -0
- data/src/wordcram/BBTreeBuilder.java +61 -0
- data/src/wordcram/Colorers.java +52 -0
- data/src/wordcram/EngineWord.java +73 -0
- data/src/wordcram/Fonters.java +17 -0
- data/src/wordcram/HsbWordColorer.java +28 -0
- data/src/wordcram/ImageShaper.java +91 -0
- data/src/wordcram/Observer.java +9 -0
- data/src/wordcram/PlacerHeatMap.java +134 -0
- data/src/wordcram/Placers.java +74 -0
- data/src/wordcram/PlottingWordNudger.java +38 -0
- data/src/wordcram/PlottingWordPlacer.java +36 -0
- data/src/wordcram/ProcessingWordRenderer.java +42 -0
- data/src/wordcram/RandomWordNudger.java +44 -0
- data/src/wordcram/RenderOptions.java +10 -0
- data/src/wordcram/ShapeBasedPlacer.java +66 -0
- data/src/wordcram/Sizers.java +54 -0
- data/src/wordcram/SketchCallbackObserver.java +70 -0
- data/src/wordcram/SpiralWordNudger.java +31 -0
- data/src/wordcram/SvgWordRenderer.java +110 -0
- data/src/wordcram/SwirlWordPlacer.java +25 -0
- data/src/wordcram/UpperLeftWordPlacer.java +27 -0
- data/src/wordcram/WaveWordPlacer.java +25 -0
- data/src/wordcram/Word.java +357 -0
- data/src/wordcram/WordAngler.java +20 -0
- data/src/wordcram/WordArray.java +18 -0
- data/src/wordcram/WordBag.java +31 -0
- data/src/wordcram/WordColorer.java +25 -0
- data/src/wordcram/WordCounter.java +96 -0
- data/src/wordcram/WordCram.java +920 -0
- data/src/wordcram/WordCramEngine.java +196 -0
- data/src/wordcram/WordFonter.java +24 -0
- data/src/wordcram/WordNudger.java +44 -0
- data/src/wordcram/WordPlacer.java +44 -0
- data/src/wordcram/WordRenderer.java +10 -0
- data/src/wordcram/WordShaper.java +78 -0
- data/src/wordcram/WordSizer.java +46 -0
- data/src/wordcram/WordSkipReason.java +42 -0
- data/src/wordcram/WordSorterAndScaler.java +31 -0
- data/src/wordcram/WordSource.java +5 -0
- data/src/wordcram/text/Html.java +15 -0
- data/src/wordcram/text/Html2Text.java +17 -0
- data/src/wordcram/text/Text.java +15 -0
- data/src/wordcram/text/TextFile.java +23 -0
- data/src/wordcram/text/TextSource.java +5 -0
- data/src/wordcram/text/WebPage.java +23 -0
- metadata +94 -5
- data/lib/cue.language.jar +0 -0
- data/lib/jsoup-1.7.2.jar +0 -0
- 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
|
+
نيويورك
|