antimoda1 commited on
Commit ·
6b31738
1
Parent(s): 0aa6d2c
save nlp model to disk
Browse files- lemmatizer.py +4 -3
lemmatizer.py
CHANGED
|
@@ -7,12 +7,13 @@ class RussianLemmatizer:
|
|
| 7 |
def __init__(self):
|
| 8 |
print(" Загрузка русской модели spaCy...")
|
| 9 |
try:
|
| 10 |
-
self.nlp = spacy.load("
|
| 11 |
except OSError:
|
| 12 |
print(" ⚠️ Модель ru_core_news_sm не найдена, скачиваю...")
|
| 13 |
import subprocess
|
| 14 |
subprocess.check_call(["python", "-m", "spacy", "download", "ru_core_news_sm"])
|
| 15 |
self.nlp = spacy.load("ru_core_news_sm")
|
|
|
|
| 16 |
|
| 17 |
self.terms = {}
|
| 18 |
self.stems = {}
|
|
@@ -23,7 +24,7 @@ class RussianLemmatizer:
|
|
| 23 |
|
| 24 |
print(f" Загружено {len(self.terms)} терминов из vocabulary.md")
|
| 25 |
|
| 26 |
-
#
|
| 27 |
@self.nlp.component("fix_terms")
|
| 28 |
def fix_terms(doc):
|
| 29 |
"""Компонент для исправления лемм терминов и их форм"""
|
|
@@ -39,7 +40,7 @@ class RussianLemmatizer:
|
|
| 39 |
self.nlp.add_pipe("fix_terms", after="lemmatizer")
|
| 40 |
|
| 41 |
def tokenize_text(self, text: str) -> list[str]:
|
| 42 |
-
"""Лемматизация текста
|
| 43 |
|
| 44 |
Args:
|
| 45 |
text: текст для лемматизации
|
|
|
|
| 7 |
def __init__(self):
|
| 8 |
print(" Загрузка русской модели spaCy...")
|
| 9 |
try:
|
| 10 |
+
self.nlp = spacy.load("./ru_model")
|
| 11 |
except OSError:
|
| 12 |
print(" ⚠️ Модель ru_core_news_sm не найдена, скачиваю...")
|
| 13 |
import subprocess
|
| 14 |
subprocess.check_call(["python", "-m", "spacy", "download", "ru_core_news_sm"])
|
| 15 |
self.nlp = spacy.load("ru_core_news_sm")
|
| 16 |
+
self.nlp.to_disk("./ru_model")
|
| 17 |
|
| 18 |
self.terms = {}
|
| 19 |
self.stems = {}
|
|
|
|
| 24 |
|
| 25 |
print(f" Загружено {len(self.terms)} терминов из vocabulary.md")
|
| 26 |
|
| 27 |
+
# custom component для обработки терминов после лемматизации
|
| 28 |
@self.nlp.component("fix_terms")
|
| 29 |
def fix_terms(doc):
|
| 30 |
"""Компонент для исправления лемм терминов и их форм"""
|
|
|
|
| 40 |
self.nlp.add_pipe("fix_terms", after="lemmatizer")
|
| 41 |
|
| 42 |
def tokenize_text(self, text: str) -> list[str]:
|
| 43 |
+
"""Лемматизация текста.
|
| 44 |
|
| 45 |
Args:
|
| 46 |
text: текст для лемматизации
|