ruby_wordcram 1.0.1 → 2.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.
- 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
|
+
نيويورك
|