Merge branch 'master' of ssh://the-cake-is-a-lie.net:20022/jonas/NLP-LAB

This commit is contained in:
Carsten 2018-05-03 14:01:22 +02:00
commit 138d5e6f3d
7 changed files with 2240759 additions and 95 deletions

View File

@ -205,24 +205,14 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"## Exercises:"
"## Task 01:"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Exercise 01\n"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"accs = [0] * 5\n",
"names = [\"M1\", \"M2\", \"M3\", \"M4\", \"M5\"]\n"
"### Performance 1\n"
]
},
{
@ -235,28 +225,15 @@
},
{
"cell_type": "code",
"execution_count": 9,
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"start training…\n",
"training done\n"
]
}
],
"outputs": [],
"source": [
"annotated_sent = nltk.corpus.treebank.tagged_sents()\n",
"\n",
"X,y,tX,ty = create_training_and_test_set(annotated_sentences=annotated_sent, \n",
" relative_cutoff=0.8)\n",
"\n",
"#classifier = DecisionTreeClassifier(criterion='entropy')\n",
"from sklearn.neural_network import MLPClassifier\n",
"model01_clf = train_classifier(X,y,MLPClassifier(),max_size=10000)\n",
"accs[0] = test_classifier(clf=clf, tX=tX, ty=ty)"
"def model_01(X,y,tX,ty, max_size=1000):\n",
" #classifier = DecisionTreeClassifier(criterion='entropy')\n",
" from sklearn.neural_network import MLPClassifier\n",
" model01_clf = train_classifier(X,y,MLPClassifier(),max_size=max_size)\n",
" return test_classifier(clf=model01_clf, tX=tX, ty=ty)"
]
},
{
@ -266,79 +243,291 @@
"#### Model 02"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"accs[1]"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'\\nimport matplotlib.pyplot as plt\\nimport numpy as np\\n\\nweights = clf.named_steps[\\'classifier\\'].feature_importances_\\nlabels = clf.named_steps[\\'vectorizer\\'].get_feature_names()\\n\\n#sort\\nweights, labels = (list(t) for t in zip(*sorted(zip(weights, labels))))\\n\\n#fig_1, ax_1 = plt.subplots()\\n#plt.bar(np.arange(len(weights)), weights)\\n#plt.xticks(np.arange(len(weights)), labels, rotation=90)\\n#plt.show()\\n\\nprint(\"Most important features:\")\\npprint.pprint(list(reversed(labels[-20:])))\\nprint(\"with weights: \")\\npprint.pprint(list(reversed(weights[-20:])))\\n'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"outputs": [],
"source": [
"'''\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"weights = clf.named_steps['classifier'].feature_importances_\n",
"labels = clf.named_steps['vectorizer'].get_feature_names()\n",
"\n",
"#sort\n",
"weights, labels = (list(t) for t in zip(*sorted(zip(weights, labels))))\n",
"\n",
"#fig_1, ax_1 = plt.subplots()\n",
"#plt.bar(np.arange(len(weights)), weights)\n",
"#plt.xticks(np.arange(len(weights)), labels, rotation=90)\n",
"#plt.show()\n",
"\n",
"print(\"Most important features:\")\n",
"pprint.pprint(list(reversed(labels[-20:])))\n",
"print(\"with weights: \")\n",
"pprint.pprint(list(reversed(weights[-20:])))\n",
"'''"
"def model_02(tX,ty):\n",
" m2_y = nltk.pos_tag([w['word'] for w in tX])\n",
" # compare results\n",
" n_correct = sum((1 if m2_y[i][1] == ty[i] else 0) for i in range(len(ty)))\n",
" return n_correct / len(ty)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"```\n",
"from sklearn import tree\n",
"import graphviz\n",
"dot_data = tree.export_graphviz(clf.named_steps['classifier'], out_file='test',\n",
" feature_names=labels,\n",
" filled=True, rounded=True, \n",
" special_characters=True)\n",
"#graph = graphviz.Source(dot_data)\n",
"#graph\n",
"```"
"#### Model 03"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"def model_03(corpus_tagged, corpus_sents, cut=0.8):\n",
" \n",
" patterns = [(r'.*ing$', 'VBG'), (r'.*ed$', 'VBD'), (r'.*es$', 'VBZ'), (r'.*ould$', 'MD'), (r'.*\\'s$', 'NN$'), \n",
" (r'.*s$', 'NNS'), (r'^-?[0-9]+(.[0-9]+)?$', 'CD'), (r'.*', 'NN')]\n",
" \n",
" s = int(len(corpus_tagged) * cut)\n",
" train_sents = corpus_tagged[:s]\n",
" test_sents = corpus_tagged[s:]\n",
" \n",
" models = {\n",
" 'def_model': nltk.DefaultTagger('NN'),\n",
" 'regexp_model': nltk.RegexpTagger(patterns),\n",
" 'uni_model': nltk.UnigramTagger(train_sents),\n",
" 'bi_model': nltk.BigramTagger(train_sents),\n",
" 'tri_model': nltk.TrigramTagger(train_sents)\n",
" }\n",
" \n",
" performance = {}\n",
" for name,model in models.items():\n",
" performance[name] = model.evaluate(test_sents)\n",
" \n",
" return performance\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Applying models on Datasets"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[('Pierre', 'NNP'),\n",
" ('Vinken', 'NNP'),\n",
" (',', ','),\n",
" ('61', 'CD'),\n",
" ('years', 'NNS'),\n",
" ('old', 'JJ'),\n",
" (',', ','),\n",
" ('will', 'MD'),\n",
" ('join', 'VB'),\n",
" ('the', 'DT'),\n",
" ('board', 'NN'),\n",
" ('as', 'IN'),\n",
" ('a', 'DT'),\n",
" ('nonexecutive', 'JJ'),\n",
" ('director', 'NN'),\n",
" ('Nov.', 'NNP'),\n",
" ('29', 'CD'),\n",
" ('.', '.')]"
]
},
"metadata": {},
"output_type": "display_data"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"P1.1\n",
"start training…\n",
"training done\n",
"Accuracy: 0.7671041469135187\n",
"P1.2\n",
"P1.3\n",
"P1.4\n",
"start training…\n",
"training done\n",
"Accuracy: 0.6359655404139998\n",
"P1.5\n",
"P1.6\n",
"{'P1.1': 0.7671041469135187,\n",
" 'P1.2': 0.8936074654423873,\n",
" 'P1.3 -- bi_model': 0.1132791057437996,\n",
" 'P1.3 -- def_model': 0.1447677029791906,\n",
" 'P1.3 -- regexp_model': 0.24232746145017217,\n",
" 'P1.3 -- tri_model': 0.06736863116922003,\n",
" 'P1.3 -- uni_model': 0.8608213982733669,\n",
" 'P1.4': 0.6359655404139998,\n",
" 'P1.5': 0.6044583741861567,\n",
" 'P1.6 -- bi_model': 0.1132791057437996,\n",
" 'P1.6 -- def_model': 0.1447677029791906,\n",
" 'P1.6 -- regexp_model': 0.24232746145017217,\n",
" 'P1.6 -- tri_model': 0.06736863116922003,\n",
" 'P1.6 -- uni_model': 0.8608213982733669}\n"
]
}
],
"source": [
"performances = {}\n",
"\n",
"treebank_tagged = nltk.corpus.treebank.tagged_sents()\n",
"treebank_sents = nltk.corpus.treebank.sents()\n",
"\n",
"brown_tagged = nltk.corpus.brown.tagged_sents()#(categories='news')\n",
"brown_sents = nltk.corpus.brown.sents()#(categories='news')\n",
"\n",
"display(treebank_tagged[0])\n",
"\n",
"X1,y1,tX1,ty1 = create_training_and_test_set(annotated_sentences=treebank_tagged, \n",
" relative_cutoff=0.8)\n",
"\n",
"X2,y2,tX2,ty2 = create_training_and_test_set(annotated_sentences=brown_tagged, \n",
" relative_cutoff=0.8)\n",
"\n",
"\n",
"print(\"P1.1\")\n",
"performances['P1.1'] = model_01(X1,y1,tX1,ty1)\n",
"\n",
"print(\"P1.2\")\n",
"performances['P1.2'] = model_02(tX1,ty1)\n",
"\n",
"print(\"P1.3\")\n",
"p3 = model_03(treebank_tagged, treebank_sents)\n",
"for k,v in p3.items():\n",
" performances[\"P1.3 -- \" + k] = v\n",
"\n",
"print(\"P1.4\")\n",
"performances['P1.4'] = model_01(X2,y2,tX2,ty2)\n",
"\n",
"print(\"P1.5\")\n",
"performances['P1.5'] = model_02(tX2,ty2)\n",
"\n",
"print(\"P1.6\")\n",
"p6 = model_03(brown_tagged, brown_sents)\n",
"for k,v in p3.items():\n",
" performances[\"P1.6 -- \" + k] = v\n",
"\n",
"pprint.pprint(performances)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Plotting Data"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "c148aec5450948cea1f32c302344dbab",
"version_major": 2,
"version_minor": 0
},
"text/html": [
"<p>Failed to display Jupyter Widget of type <code>FigureCanvasNbAgg</code>.</p>\n",
"<p>\n",
" If you're reading this message in the Jupyter Notebook or JupyterLab Notebook, it may mean\n",
" that the widgets JavaScript is still loading. If this message persists, it\n",
" likely means that the widgets JavaScript library is either not installed or\n",
" not enabled. See the <a href=\"https://ipywidgets.readthedocs.io/en/stable/user_install.html\">Jupyter\n",
" Widgets Documentation</a> for setup instructions.\n",
"</p>\n",
"<p>\n",
" If you're reading this message in another frontend (for example, a static\n",
" rendering on GitHub or <a href=\"https://nbviewer.jupyter.org/\">NBViewer</a>),\n",
" it may mean that your frontend doesn't currently support widgets.\n",
"</p>\n"
],
"text/plain": [
"FigureCanvasNbAgg()"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"#weights = clf.named_steps['classifier'].feature_importances_\n",
"#labels = clf.named_steps['vectorizer'].get_feature_names()\n",
"\n",
"#sort\n",
"#weights, labels = (list(t) for t in zip(*sorted(zip(weights, labels))))\n",
"\n",
"fig_1, ax_1 = plt.subplots()\n",
"plt.bar(np.arange(len(performances)), performances.values())\n",
"plt.xticks(np.arange(len(performances)), performances.keys(), rotation=30, ha='right')\n",
"plt.tight_layout()\n",
"plt.show()\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"----\n",
"## Task 2"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"WORDS = 'words' #: column type for words\n",
"POS = 'pos' #: column type for part-of-speech tags\n",
"TREE = 'tree' #: column type for parse trees\n",
"CHUNK = 'chunk' #: column type for chunk structures\n",
"NE = 'ne' #: column type for named entities\n",
"SRL = 'srl' #: column type for semantic role labels\n",
"IGNORE = 'ignore' #: column type for column that should be ignored\n",
"train_path = \"./ru_syntagrus-ud-train.conllu\"\n",
"ru_corp = nltk.corpus.ConllCorpusReader(root=\"./\", \n",
" fileids=[\"ru_syntagrus-ud-train-uncommented.conllu\"],\n",
" columntypes=[IGNORE, WORDS, IGNORE, POS],\n",
" encoding='utf-8')\n"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"ru_tagged = ru_corp.tagged_sents()\n",
"\n",
"ru_tagged[0]\n",
"\n",
"X3,y3,tX3,ty3 = create_training_and_test_set(annotated_sentences=ru_tagged, \n",
" relative_cutoff=0.8)\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"P2.1\n",
"start training…\n",
"training done\n",
"Accuracy: 0.7043834741655548\n",
"0.7043834741655548\n"
]
}
],
"source": [
"print(\"P2.1\")\n",
"performances['P2.1'] = model_01(X3,y3,tX3,ty3, max_size=1000)\n",
"print(performances['P2.1'])"
]
},
{
@ -365,7 +554,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.3"
"version": "3.6.5"
}
},
"nbformat": 4,

26356
Jonas_Solutions/ru-upos.DICT Normal file

File diff suppressed because it is too large Load Diff

382
Jonas_Solutions/ru-upos.RDR Normal file
View File

@ -0,0 +1,382 @@
True : object.conclusion = "NN"
object.tag == "ADV" : object.conclusion = "ADV"
object.suffixL3 == "ено" : object.conclusion = "VERB"
object.suffixL3 == "ано" : object.conclusion = "VERB"
object.nextWord1 == "-" : object.conclusion = "ADV"
object.nextTag1 == "PUNCT" and object.nextTag2 == "NOUN" : object.conclusion = "NOUN"
object.word == "так" and object.nextWord1 == "как" : object.conclusion = "SCONJ"
object.suffixL3 == "ино" : object.conclusion = "PROPN"
object.nextWord1 == "-" : object.conclusion = "ADV"
object.suffixL3 == "нко" : object.conclusion = "PROPN"
object.word == "всё" and object.nextTag1 == "NOUN" : object.conclusion = "DET"
object.nextTag1 == "SYM" : object.conclusion = "NUM"
object.suffixL3 == "бро" : object.conclusion = "NOUN"
object.suffixL3 == "ако" : object.conclusion = "PROPN"
object.suffixL3 == "йко" : object.conclusion = "PROPN"
object.word == "Сити" and object.nextWord1 == "&#39;&#39;" : object.conclusion = "PROPN"
object.suffixL4 == "бюро" : object.conclusion = "PROPN"
object.nextWord1 == "км" : object.conclusion = "NUM"
object.nextWord1 == "года" : object.conclusion = "ADJ"
object.tag == "NOUN" : object.conclusion = "NOUN"
object.suffixL4 == "ском" : object.conclusion = "ADJ"
object.word == "войском" : object.conclusion = "NOUN"
object.suffixL3 == "кие" : object.conclusion = "ADJ"
object.prevTag1 == "PUNCT" and object.word == "русские" and object.nextTag1 == "PUNCT" : object.conclusion = "NOUN"
object.suffixL3 == "ыми" : object.conclusion = "ADJ"
object.prevTag1 == "PUNCT" and object.nextTag1 == "ADP" : object.conclusion = "VERB"
object.prevTag1 == "PROPN" and object.nextTag1 == "PUNCT" : object.conclusion = "PROPN"
object.suffixL2 == "es" : object.conclusion = "NOUN"
object.suffixL3 == "" : object.conclusion = "ADV"
object.suffixL2 == "ми" : object.conclusion = "NOUN"
object.suffixL2 == "ия" : object.conclusion = "NOUN"
object.nextWord1 == "-" : object.conclusion = "ADV"
object.word == "Entertainment" : object.conclusion = "NOUN"
object.suffixL2 == "ns" : object.conclusion = "NOUN"
object.suffixL3 == "ing" : object.conclusion = "NOUN"
object.nextWord2 == ":" : object.conclusion = "NOUN"
object.nextWord1 == "-" : object.conclusion = "ADV"
object.nextTag1 == "PUNCT" and object.nextTag2 == "NUM" : object.conclusion = "NOUN"
object.nextTag1 == "PUNCT" and object.nextTag2 == "ADP" : object.conclusion = "PROPN"
object.prevTag2 == "VERB" and object.prevTag1 == "NOUN" : object.conclusion = "PROPN"
object.suffixL3 == "ена" : object.conclusion = "NOUN"
object.suffixL3 == "ими" : object.conclusion = "ADJ"
object.prevWord1 == "," : object.conclusion = "VERB"
object.word == "русскими" : object.conclusion = "NOUN"
object.suffixL4 == "ьном" : object.conclusion = "ADJ"
object.suffixL3 == "шие" : object.conclusion = "VERB"
object.prevWord1 == "" : object.conclusion = "ADJ"
object.nextTag1 == "NOUN" and object.nextTag2 == "NOUN" : object.conclusion = "AUX"
object.suffixL3 == "ово" : object.conclusion = "PROPN"
object.word == "слово" : object.conclusion = "NOUN"
object.suffixL3 == "ова" : object.conclusion = "PROPN"
object.word == "слова" : object.conclusion = "NOUN"
object.word == "острова" : object.conclusion = "NOUN"
object.prevTag1 == "ADJ" and object.nextTag1 == "PUNCT" : object.conclusion = "NOUN"
object.prevTag1 == "DET" and object.word == "вдова" : object.conclusion = "NOUN"
object.suffixL4 == "ющей" : object.conclusion = "VERB"
object.suffixL3 == "щие" : object.conclusion = "VERB"
object.nextWord1 == "," : object.conclusion = "NOUN"
object.prevTag1 == "PROPN" and object.nextTag1 == "VERB" : object.conclusion = "PROPN"
object.nextWord2 == "альбом" : object.conclusion = "NOUN"
object.prevWord2 == "-" : object.conclusion = "NOUN"
object.prevTag1 == "PUNCT" and object.word == "м" : object.conclusion = "ADJ"
object.suffixL4 == "нном" : object.conclusion = "ADJ"
object.prevTag1 == "PUNCT" : object.conclusion = "VERB"
object.suffixL4 == "рном" : object.conclusion = "ADJ"
object.suffixL4 == "тном" : object.conclusion = "ADJ"
object.prevWord1 == "городе" : object.conclusion = "PROPN"
object.suffixL3 == "ева" : object.conclusion = "PROPN"
object.word == "королева" and object.nextTag1 == "NOUN" and object.nextTag2 == "PUNCT" : object.conclusion = "NOUN"
object.suffixL3 == "ево" : object.conclusion = "PROPN"
object.suffixL4 == "ески" : object.conclusion = "ADV"
object.prevTag1 == "ADV" : object.conclusion = "PROPN"
object.prevWord1 == "город" : object.conclusion = "PROPN"
object.suffixL4 == "овом" : object.conclusion = "ADJ"
object.suffixL4 == "чном" : object.conclusion = "ADJ"
object.prevWord1 == "реки" : object.conclusion = "PROPN"
object.suffixL3 == "эля" : object.conclusion = "PROPN"
object.suffixL4 == "вшей" : object.conclusion = "VERB"
object.suffixL4 == "дние" : object.conclusion = "ADJ"
object.suffixL4 == "дном" : object.conclusion = "ADJ"
object.suffixL4 == "арда" : object.conclusion = "PROPN"
object.suffixL4 == "тоне" : object.conclusion = "PROPN"
object.suffixL3 == "рге" : object.conclusion = "PROPN"
object.prevWord1 == "города" : object.conclusion = "PROPN"
object.suffixL3 == "йти" : object.conclusion = "VERB"
object.prevWord1 == "*" : object.conclusion = "ADV"
object.suffixL3 == "кии" : object.conclusion = "PROPN"
object.suffixL4 == "поле" : object.conclusion = "PROPN"
object.suffixL4 == "овка" : object.conclusion = "PROPN"
object.nextTag1 == "NOUN" : object.conclusion = "NOUN"
object.prevWord1 == "провинцию" : object.conclusion = "PROPN"
object.suffixL4 == "ичем" : object.conclusion = "PROPN"
object.nextWord2 == "родился" : object.conclusion = "PROPN"
object.suffixL3 == "ёва" : object.conclusion = "PROPN"
object.suffixL4 == "поль" : object.conclusion = "PROPN"
object.prevWord1 == "деревня" : object.conclusion = "PROPN"
object.suffixL4 == "алия" : object.conclusion = "PROPN"
object.suffixL4 == "льда" : object.conclusion = "PROPN"
object.suffixL3 == "ите" : object.conclusion = "VERB"
object.prevTag1 == "ADP" : object.conclusion = "NOUN"
object.suffixL4 == "бном" : object.conclusion = "ADJ"
object.suffixL3 == "ида" : object.conclusion = "PROPN"
object.suffixL4 == "" : object.conclusion = "NOUN"
object.suffixL4 == "ндия" : object.conclusion = "PROPN"
object.suffixL4 == "тове" : object.conclusion = "PROPN"
object.suffixL4 == "асом" : object.conclusion = "PROPN"
object.suffixL3 == "нчи" : object.conclusion = "PROPN"
object.suffixL3 == "бии" : object.conclusion = "PROPN"
object.suffixL3 == "эль" : object.conclusion = "PROPN"
object.suffixL3 == "мми" : object.conclusion = "PROPN"
object.suffixL4 == "евка" : object.conclusion = "PROPN"
object.suffixL3 == "кию" : object.conclusion = "PROPN"
object.suffixL3 == "нне" : object.conclusion = "PROPN"
object.prevWord1 == "у" and object.nextWord1 == ";" : object.conclusion = "PROPN"
object.suffixL3 == "тти" : object.conclusion = "PROPN"
object.suffixL4 == "кера" : object.conclusion = "PROPN"
object.suffixL4 == "кове" : object.conclusion = "PROPN"
object.prevWord1 == "село" : object.conclusion = "PROPN"
object.suffixL4 == "рант" : object.conclusion = "PROPN"
object.suffixL4 == "ндию" : object.conclusion = "PROPN"
object.suffixL4 == "ейма" : object.conclusion = "PROPN"
object.prevWord1 == "в" and object.nextWord1 == "(" : object.conclusion = "PROPN"
object.prevTag2 == "ADJ" and object.prevTag1 == "ADP" : object.conclusion = "NOUN"
object.prevWord1 == "Южной" : object.conclusion = "PROPN"
object.prevWord1 == "святого" : object.conclusion = "PROPN"
object.nextWord1 == "родился" : object.conclusion = "PROPN"
object.suffixL4 == "берт" : object.conclusion = "PROPN"
object.suffixL4 == "дора" : object.conclusion = "PROPN"
object.suffixL4 == "нята" : object.conclusion = "VERB"
object.suffixL4 == "тней" : object.conclusion = "ADJ"
object.suffixL4 == "жном" : object.conclusion = "ADJ"
object.suffixL4 == "мном" : object.conclusion = "ADJ"
object.suffixL4 == "сном" : object.conclusion = "ADJ"
object.prevWord1 == "-" and object.word == "мм" : object.conclusion = "ADJ"
object.suffixL4 == "нней" : object.conclusion = "ADJ"
object.tag == "NUM" : object.conclusion = "NUM"
object.nextWord1 == "-" : object.conclusion = "ADV"
object.suffixL4 == "BASE" : object.conclusion = "PROPN"
object.nextTag1 == "NOUN" and object.nextTag2 == "ADJ" : object.conclusion = "ADJ"
object.suffixL2 == "их" : object.conclusion = "NUM"
object.prevTag2 == "ADP" and object.prevTag1 == "PRON" : object.conclusion = "NUM"
object.prevWord1 == "," : object.conclusion = "NUM"
object.suffixL4 == "ному" : object.conclusion = "NUM"
object.prevWord2 == "на" : object.conclusion = "NUM"
object.prevTag1 == "DET" : object.conclusion = "NUM"
object.prevWord1 == "площадью" : object.conclusion = "NUM"
object.nextWord1 == "году" : object.conclusion = "ADJ"
object.prevWord1 == "-" : object.conclusion = "ADV"
object.prevWord2 == "Ямал" : object.conclusion = "NUM"
object.prevWord1 == "-" and object.word == "ти" : object.conclusion = "NUM"
object.prevTag1 == "PUNCT" and object.word == "1" and object.nextTag1 == "PUNCT" : object.conclusion = "NUM"
object.nextWord1 == "года" : object.conclusion = "ADJ"
object.word == "два" : object.conclusion = "NUM"
object.word == "три" and object.nextWord1 == "года" : object.conclusion = "NUM"
object.prevWord2 == "," : object.conclusion = "NUM"
object.prevWord1 == "на" : object.conclusion = "NUM"
object.prevTag1 == "ADP" and object.word == "2" and object.nextTag1 == "NOUN" : object.conclusion = "NUM"
object.word == "3" : object.conclusion = "NUM"
object.nextWord1 == "годах" : object.conclusion = "ADJ"
object.nextWord1 == "г." : object.conclusion = "ADJ"
object.prevWord1 == "С" : object.conclusion = "ADJ"
object.nextWord1 == "января" : object.conclusion = "ADJ"
object.word == "много" and object.nextTag1 == "VERB" : object.conclusion = "ADV"
object.nextWord1 == "годов" : object.conclusion = "ADJ"
object.nextWord1 == "г" : object.conclusion = "ADJ"
object.nextWord1 == "июня" : object.conclusion = "ADJ"
object.nextWord1 == "сентября" : object.conclusion = "ADJ"
object.nextWord1 == "октября" : object.conclusion = "ADJ"
object.nextWord1 == "августа" : object.conclusion = "ADJ"
object.suffixL2 == "S2" : object.conclusion = "PROPN"
object.nextWord1 == "гг" : object.conclusion = "ADJ"
object.nextTag1 == "PRON" and object.nextTag2 == "VERB" : object.conclusion = "ADJ"
object.prevWord1 == "В" and object.nextWord1 == "--" : object.conclusion = "ADJ"
object.nextWord1 == "ноября" : object.conclusion = "ADJ"
object.prevWord1 == "в" and object.nextWord1 == "--" : object.conclusion = "ADJ"
object.tag == "ADP" : object.conclusion = "ADP"
object.prevWord1 == "так" and object.word == "как" : object.conclusion = "ADV"
object.prevTag1 == "ADJ" and object.word == "типа" : object.conclusion = "NOUN"
object.prevTag1 == "NOUN" and object.word == "как" and object.nextTag1 == "ADP" : object.conclusion = "ADV"
object.word == "Как" and object.nextTag1 == "VERB" : object.conclusion = "SCONJ"
object.word == "как" and object.nextTag1 == "VERB" and object.nextTag2 == "ADP" : object.conclusion = "ADV"
object.prevWord2 == "того" and object.prevWord1 == "," and object.word == "как" : object.conclusion = "SCONJ"
object.prevWord1 == "того" and object.word == "как" : object.conclusion = "SCONJ"
object.tag == "PRON" : object.conclusion = "PRON"
object.word == "том" and object.nextTag1 == "NOUN" : object.conclusion = "DET"
object.nextTag1 == "PART" and object.nextTag2 == "NOUN" : object.conclusion = "DET"
object.nextWord1 == "просто" : object.conclusion = "PRON"
object.prevWord1 == "--" and object.word == "это" : object.conclusion = "AUX"
object.word == "это" and object.nextTag1 == "NOUN" : object.conclusion = "DET"
object.prevTag1 == "" and object.nextTag1 == "NOUN" : object.conclusion = "DET"
object.word == "т." and object.nextTag1 == "ADV" : object.conclusion = "ADV"
object.prevWord1 == "в" and object.word == "этом" : object.conclusion = "DET"
object.word == "всего" and object.nextTag1 == "NOUN" : object.conclusion = "DET"
object.word == "того" and object.nextWord1 == "времени" : object.conclusion = "DET"
object.tag == "SCONJ" : object.conclusion = "SCONJ"
object.word == "что" and object.nextTag1 == "VERB" : object.conclusion = "PRON"
object.prevWord2 == "том" and object.word == "что" : object.conclusion = "SCONJ"
object.prevWord2 == "признал" and object.word == "что" : object.conclusion = "SCONJ"
object.nextWord2 == "в" : object.conclusion = "SCONJ"
object.word == "потому" and object.nextTag1 == "PUNCT" : object.conclusion = "ADV"
object.tag == "PROPN" : object.conclusion = "PROPN"
object.prevTag1 == "AUX" : object.conclusion = "VERB"
object.suffixL2 == "ий" : object.conclusion = "PROPN"
object.suffixL4 == "" : object.conclusion = "PROPN"
object.nextTag1 == "PROPN" and object.nextTag2 == "PUNCT" : object.conclusion = "PROPN"
object.prevWord1 == "-" and object.nextWord1 == "-" : object.conclusion = "ADV"
object.suffixL4 == "ован" : object.conclusion = "VERB"
object.suffixL4 == "мена" : object.conclusion = "NOUN"
object.suffixL4 == "гион" : object.conclusion = "NOUN"
object.nextWord1 == "of" : object.conclusion = "NOUN"
object.prevTag2 == "VERB" and object.prevTag1 == "ADJ" : object.conclusion = "NOUN"
object.suffixL3 == "" : object.conclusion = "PROPN"
object.prevTag1 == "NUM" and object.nextTag1 == "PUNCT" : object.conclusion = "NOUN"
object.suffixL4 == "овед" : object.conclusion = "NOUN"
object.prevTag2 == "ADJ" and object.prevTag1 == "ADJ" : object.conclusion = "NOUN"
object.suffixL3 == "" : object.conclusion = "PROPN"
object.suffixL3 == "ога" : object.conclusion = "NOUN"
object.suffixL4 == "чена" : object.conclusion = "VERB"
object.suffixL4 == "вана" : object.conclusion = "VERB"
object.word == "Ивана" : object.conclusion = "PROPN"
object.suffixL4 == "нена" : object.conclusion = "VERB"
object.suffixL3 == "чна" : object.conclusion = "ADJ"
object.nextTag1 == "PRON" and object.nextTag2 == "VERB" : object.conclusion = "NOUN"
object.suffixL3 == "ics" : object.conclusion = "NOUN"
object.prevTag1 == "VERB" and object.nextTag1 == "ADP" : object.conclusion = "NOUN"
object.prevWord2 == "" : object.conclusion = "PROPN"
object.suffixL2 == "ua" : object.conclusion = "NOUN"
object.suffixL3 == "ача" : object.conclusion = "NOUN"
object.suffixL2 == "nd" : object.conclusion = "NOUN"
object.suffixL3 == "sis" : object.conclusion = "NOUN"
object.prevWord1 == "of" : object.conclusion = "NOUN"
object.prevTag1 == "ADP" and object.nextTag1 == "PROPN" : object.conclusion = "PROPN"
object.suffixL2 == "ry" : object.conclusion = "NOUN"
object.nextWord1 == "the" : object.conclusion = "VERB"
object.suffixL2 == "ed" : object.conclusion = "VERB"
object.prevTag2 == "PUNCT" and object.prevTag1 == "NOUN" : object.conclusion = "PROPN"
object.nextWord1 == "Airlines" : object.conclusion = "ADJ"
object.tag == "DET" : object.conclusion = "DET"
object.nextWord2 == "что" : object.conclusion = "PRON"
object.word == "его" and object.nextTag1 == "VERB" : object.conclusion = "PRON"
object.prevTag1 == "PUNCT" and object.word == "то" : object.conclusion = "ADV"
object.word == "то" and object.nextWord1 == "есть" : object.conclusion = "PRON"
object.nextWord1 == "с" : object.conclusion = "CCONJ"
object.prevTag1 == "VERB" and object.nextTag1 == "ADP" : object.conclusion = "PRON"
object.nextWord1 == "из" : object.conclusion = "DET"
object.prevTag1 == "ADP" and object.word == "этого" : object.conclusion = "PRON"
object.nextTag2 == "PUNCT" : object.conclusion = "DET"
object.nextTag1 == "NOUN" and object.nextTag2 == "NOUN" : object.conclusion = "DET"
object.word == "этого" and object.nextTag1 == "NOUN" and object.nextTag2 == "ADP" : object.conclusion = "DET"
object.nextTag2 == "PRON" : object.conclusion = "DET"
object.prevWord1 == "с" : object.conclusion = "DET"
object.prevTag1 == "VERB" and object.nextTag1 == "ADV" : object.conclusion = "PRON"
object.prevTag1 == "ADJ" and object.nextTag1 == "ADP" : object.conclusion = "PRON"
object.prevTag1 == "NOUN" and object.nextTag1 == "ADP" : object.conclusion = "PRON"
object.prevTag1 == "VERB" and object.word == "его" and object.nextTag1 == "PUNCT" : object.conclusion = "PRON"
object.nextTag1 == "CCONJ" : object.conclusion = "PRON"
object.prevTag2 == "PRON" and object.prevTag1 == "VERB" and object.word == "её" : object.conclusion = "PRON"
object.nextTag1 == "PUNCT" and object.nextTag2 == "NOUN" : object.conclusion = "PRON"
object.word == "его" and object.nextTag1 == "PUNCT" : object.conclusion = "DET"
object.tag == "SYM" : object.conclusion = "SYM"
object.tag == "PART" : object.conclusion = "PART"
object.tag == "PUNCT" : object.conclusion = "PUNCT"
object.tag == "VERB" : object.conclusion = "VERB"
object.suffixL4 == "ость" : object.conclusion = "NOUN"
object.prevTag1 == "ADJ" and object.nextTag1 == "PUNCT" : object.conclusion = "NOUN"
object.nextTag2 == "SCONJ" : object.conclusion = "VERB"
object.suffixL4 == "тели" : object.conclusion = "NOUN"
object.prevTag1 == "NOUN" and object.word == "хотели" and object.nextTag1 == "VERB" : object.conclusion = "VERB"
object.suffixL3 == "лла" : object.conclusion = "PROPN"
object.suffixL3 == "ины" : object.conclusion = "NOUN"
object.suffixL4 == "щины" : object.conclusion = "PROPN"
object.nextTag2 == "" : object.conclusion = "PROPN"
object.nextWord1 == "-" : object.conclusion = "ADV"
object.suffixL3 == "лав" : object.conclusion = "PROPN"
object.prevWord1 == "-" : object.conclusion = "PROPN"
object.suffixL3 == "оны" : object.conclusion = "NOUN"
object.prevWord1 == "``" and object.nextWord1 == "&#39;&#39;" : object.conclusion = "NOUN"
object.suffixL2 == "ен" : object.conclusion = "PROPN"
object.prevTag2 == "CCONJ" and object.prevTag1 == "PUNCT" : object.conclusion = "VERB"
object.suffixL3 == "вен" : object.conclusion = "PROPN"
object.suffixL3 == "мен" : object.conclusion = "NOUN"
object.suffixL3 == "лли" : object.conclusion = "PROPN"
object.suffixL4 == "итет" : object.conclusion = "NOUN"
object.prevTag1 == "NOUN" and object.word == "правил" : object.conclusion = "NOUN"
object.suffixL4 == "мены" : object.conclusion = "NOUN"
object.suffixL4 == "иала" : object.conclusion = "NOUN"
object.suffixL3 == "кет" : object.conclusion = "NOUN"
object.nextWord1 == "города" : object.conclusion = "NOUN"
object.suffixL3 == "уны" : object.conclusion = "NOUN"
object.suffixL4 == "пись" : object.conclusion = "NOUN"
object.suffixL3 == "дли" : object.conclusion = "PROPN"
object.prevTag2 == "NOUN" and object.prevTag1 == "ADP" : object.conclusion = "PROPN"
object.nextTag1 == "PUNCT" and object.nextTag2 == "PROPN" : object.conclusion = "PROPN"
object.suffixL2 == "ся" : object.conclusion = "VERB"
object.suffixL4 == "льны" : object.conclusion = "ADJ"
object.suffixL3 == "тен" : object.conclusion = "ADJ"
object.tag == "X" : object.conclusion = "X"
object.tag == "CCONJ" : object.conclusion = "CCONJ"
object.prevTag2 == "CCONJ" and object.prevTag1 == "ADV" : object.conclusion = "PART"
object.word == "А" and object.nextTag1 == "PUNCT" : object.conclusion = "NOUN"
object.prevWord1 == "-" and object.word == "либо" : object.conclusion = "ADV"
object.prevTag1 == "SCONJ" : object.conclusion = "PART"
object.tag == "AUX" : object.conclusion = "AUX"
object.prevWord1 == "не" and object.word == "было" : object.conclusion = "VERB"
object.word == "стал" and object.nextTag1 == "VERB" : object.conclusion = "VERB"
object.nextTag1 == "ADP" : object.conclusion = "VERB"
object.prevWord1 == "," and object.nextWord1 == "в" : object.conclusion = "AUX"
object.prevTag1 == "NOUN" and object.word == "были" and object.nextTag1 == "ADP" : object.conclusion = "AUX"
object.prevTag1 == "CCONJ" : object.conclusion = "AUX"
object.word == "было" and object.nextTag1 == "NUM" : object.conclusion = "VERB"
object.prevWord2 == "," and object.word == "было" : object.conclusion = "AUX"
object.word == "стала" and object.nextTag1 == "VERB" : object.conclusion = "VERB"
object.prevTag1 == "PUNCT" and object.nextTag1 == "PUNCT" : object.conclusion = "VERB"
object.word == "стали" and object.nextTag1 == "VERB" : object.conclusion = "VERB"
object.word == "быть" and object.nextTag1 == "PART" : object.conclusion = "VERB"
object.prevTag1 == "PART" and object.nextTag1 == "PUNCT" : object.conclusion = "VERB"
object.tag == "ADJ" : object.conclusion = "ADJ"
object.prevTag1 == "PUNCT" and object.nextTag1 == "ADP" : object.conclusion = "VERB"
object.prevWord1 == "-" : object.conclusion = "ADJ"
object.prevWord1 == "--" : object.conclusion = "ADJ"
object.prevTag2 == "NOUN" and object.prevTag1 == "PUNCT" and object.word == "многие" : object.conclusion = "ADJ"
object.suffixL4 == "ений" : object.conclusion = "NOUN"
object.nextWord1 == "-" : object.conclusion = "ADV"
object.nextWord2 == "либо" : object.conclusion = "DET"
object.suffixL3 == "ций" : object.conclusion = "NOUN"
object.prevWord1 == "" : object.conclusion = "PROPN"
object.prevTag1 == "ADJ" and object.nextTag1 == "PUNCT" : object.conclusion = "NOUN"
object.suffixL3 == "ных" : object.conclusion = "ADJ"
object.suffixL2 == "ый" : object.conclusion = "ADJ"
object.suffixL3 == "ное" : object.conclusion = "ADJ"
object.suffixL2 == "го" : object.conclusion = "ADJ"
object.suffixL4 == "аний" : object.conclusion = "NOUN"
object.suffixL4 == "вший" : object.conclusion = "VERB"
object.word == "бывший" : object.conclusion = "ADJ"
object.suffixL4 == "ющая" : object.conclusion = "VERB"
object.nextWord1 == "км" : object.conclusion = "NUM"
object.word == "кв." : object.conclusion = "ADJ"
object.suffixL4 == "ющих" : object.conclusion = "VERB"
object.word == "следующих" : object.conclusion = "ADJ"
object.suffixL4 == "изму" : object.conclusion = "NOUN"
object.suffixL4 == "вших" : object.conclusion = "VERB"
object.word == "бывших" : object.conclusion = "ADJ"
object.suffixL4 == "вшим" : object.conclusion = "VERB"
object.suffixL4 == "ывая" : object.conclusion = "VERB"
object.suffixL4 == "емых" : object.conclusion = "VERB"
object.suffixL4 == "вшая" : object.conclusion = "VERB"
object.suffixL3 == "рий" : object.conclusion = "NOUN"
object.prevWord1 == "" : object.conclusion = "PROPN"
object.nextTag2 == "PUNCT" : object.conclusion = "PROPN"
object.prevTag2 == "PUNCT" and object.prevTag1 == "PART" : object.conclusion = "VERB"
object.suffixL3 == "зий" : object.conclusion = "NOUN"
object.suffixL3 == "лий" : object.conclusion = "NOUN"
object.suffixL4 == "дкой" : object.conclusion = "NOUN"
object.word == "я" and object.nextTag1 == "VERB" : object.conclusion = "PRON"
object.prevTag1 == "PUNCT" and object.nextTag1 == "DET" : object.conclusion = "VERB"
object.suffixL4 == "ивая" : object.conclusion = "VERB"
object.nextTag1 == "PROPN" : object.conclusion = "NOUN"
object.nextTag1 == "PRON" and object.nextTag2 == "NOUN" : object.conclusion = "VERB"
object.prevWord1 == "с" and object.nextWord1 == "." : object.conclusion = "NOUN"
object.prevWord1 == "семейства" : object.conclusion = "NOUN"
object.suffixL4 == "иной" : object.conclusion = "NOUN"
object.word == "21" and object.nextWord2 == "." : object.conclusion = "NUM"
object.word == "14" and object.nextTag1 == "NOUN" and object.nextTag2 == "PUNCT" : object.conclusion = "NUM"
object.suffixL4 == "ющее" : object.conclusion = "VERB"
object.suffixL4 == "емые" : object.conclusion = "VERB"
object.suffixL3 == "жая" : object.conclusion = "VERB"
object.suffixL4 == "олго" : object.conclusion = "ADV"
object.suffixL4 == "рмой" : object.conclusion = "NOUN"
object.suffixL4 == "вкой" : object.conclusion = "NOUN"
object.nextTag1 == "AUX" and object.nextTag2 == "ADV" : object.conclusion = "PROPN"
object.prevWord2 == "названия" : object.conclusion = "PROPN"
object.word == "12" and object.nextTag1 == "PUNCT" : object.conclusion = "NUM"
object.word == "2005" and object.nextTag1 == "PUNCT" : object.conclusion = "NUM"
object.word == "14" and object.nextWord1 == "лет" : object.conclusion = "NUM"
object.suffixL4 == "ящих" : object.conclusion = "VERB"
object.suffixL4 == "ющим" : object.conclusion = "VERB"
object.nextTag1 == "NOUN" and object.nextTag2 == "ADP" : object.conclusion = "ADJ"
object.suffixL4 == "ящий" : object.conclusion = "VERB"
object.suffixL4 == "щему" : object.conclusion = "VERB"
object.suffixL4 == "упая" : object.conclusion = "VERB"
object.suffixL4 == "емой" : object.conclusion = "VERB"
object.nextTag1 == "ADV" and object.nextTag2 == "ADP" : object.conclusion = "VERB"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff