ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΏΠΎΡ ΠΎΠΆΠΈΠ΅ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ ΡΠ΅ΠΊΡΡΡ ΠΈΠ· Π΄Π°ΡΠ°ΡΠ΅ΡΠ°.
- ΠΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΠΊΠ°
- ΠΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ°
- ΠΡΠΈΠΌΠ΅ΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ
ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΊΠ°ΠΊ ΠΎΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠ΅, ΡΠ°ΠΊ ΠΈ ΡΠ΅Π΅ΡΡΡΠΎΠ²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΡΠ΅ ΡΠ°ΡΡΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ:
- ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΏΠΎΠ»Π½ΡΠ΅ ΡΠΎΡΠΌΡ ΡΠ»ΠΎΠ²Π°:
Β«ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠΈΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ Π.Π. ΠΠΎΡΡΠΊΠΎΠ³ΠΎΒ»
||Β«ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠΈΡΡΡ ΠΈΠΌ. Π.Π. ΠΠΎΡΡΠΊΠΎΠ³ΠΎΒ»
; - ΠΏΡΠΎΠΏΡΡΠ΅Π½Ρ Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ»ΠΎΠ²Π°:
Β«ΠΠΈΡΠ΅ΡΠ°ΡΡΡΠ½ΡΠΉ ΠΈΠ½ΡΡΠΈΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ Π.Π. ΠΠΎΡΡΠΊΠΎΠ³ΠΎΒ»
||Β«ΠΠ½ΡΡΠΈΡΡΡ ΠΈΠΌΠ΅Π½ΠΈ Π.Π.ΠΠΎΡΡΠΊΠΎΠ³ΠΎΒ»
; - ΠΏΡΠΎΠΏΡΡΠ΅Π½Ρ Π»ΠΈΠ±ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠΈΠΌΠ²ΠΎΠ»Ρ:
Β«Π‘ΠΈΠ±ΠΈΡΡΠΊΠΈΠΉ ΡΠ΅Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΡΠΈΡΠ΅ΡΒ»
||Β«Π‘ΠΈΠ±ΡΡΠΊΠΈΠΉ ΡΠ΅Π΄Π΅ΡΠ°Π°Π°Π»ΡΠ½ΡΠΉ ΡΠ½ΠΈΠ²Π΅ΡΒ»
; - ΡΠ»ΠΎΠ²Π° ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π² Π½Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅:
ΠΠ½ΡΡΠΈΡΡΡ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
||ΠΠ½ΡΡΠΈΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΡ ΠΈ ΠΊΠΎΡΠΌΠΈΡΠ΅ΡΠΊΠΈΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
.
ΠΠ°Π½Π½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ ΡΠ΅ΡΠΈΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ°Π½Π½ΡΠΉ ΠΌΠΎΠ΄ΡΠ»Ρ recs-searcher (registry error correction system - searcher)
, ΠΎΡΠ½ΠΎΠ²Π°Π½Π½ΡΠΉ Π½Π° ΠΈΠ·Π²Π΅ΡΡΠ½ΡΡ
NLP-Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°Ρ
.
- ΠΌΠΎΠ΄ΡΠ»Ρ ΡΠ½ΠΈΠ²Π΅ΡΡΠ°Π»Π΅Π½ Π΄Π»Ρ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄Π°ΡΠ°ΡΠ΅ΡΠ°;
- ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ API Π΄Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ;
- ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Π΄Π»Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π·Π°Π΄Π°ΡΠΈ, ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΡΡΡΠΎΠΈΡΡΡ pipeline (ΠΏΡΠ΅Π΄ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΠΊΡΡΠ°, ΠΌΠΎΠ΄Π΅Π»ΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΎΠ², Π°Π»Π³ΠΎΡΠΈΡΠΌΡ Π΄Π»Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ ΡΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΎΠ², Π°ΡΠ³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ ΠΎΡΠ΅Π½ΠΊΠΈ ΠΎΠ±ΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ pipeline);
- Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΎΠ±ΡΡΠ΅Π½Π½ΡΡ pipeline;
- ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π±Π»Π°Π³ΠΎΠ΄Π°ΡΡ ΠΈΠΌΠ΅ΡΡΠΈΠΌΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠ½ΡΠΌ ΠΊΠ»Π°ΡΡΠ°ΠΌ.
pip install recs-searcher
- Π‘ΠΎΠ±Π΅ΡΡΠΌ pipeline:
from recs_searcher import (
dataset, # ΡΡΠ΅Π±Π½ΡΠ΅ Π΄Π°ΡΠ°ΡΠ΅ΡΡ
preprocessing, # ΠΏΡΠ΅Π΄ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΡΠ΅ΠΊΡΡΠ°
embeddings, # ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ° Π² ΡΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΈ
similarity_search, # Π±ΡΡΡΡΡΠ΅ ΠΏΠΎΠΈΡΠΊΠΎΠ²ΠΈΠΊΠΈ Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²Π΅ ΡΠΌΠ±Π΅Π΄Π΄ΠΈΠ½Π³ΠΎΠ²
augmentation, # Π°ΡΠ³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΡΠ΅ΠΊΡΡΠ° Π΄Π»Ρ Π²Π°Π»ΠΈΠ΄Π°ΡΠΈΠΈ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½ΠΎΠ²
explain, # ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΈΡ ΡΡ
ΠΎΠ΄ΡΡΠ²Π° Π΄Π²ΡΡ
ΡΠ΅ΠΊΡΡΠΎΠ²
api, # ΠΠ°ΠΉΠΏΠ»Π°ΠΉΠ½
)
model_embedding = embeddings.CountVectorizerWrapperEmbedding(
analyzer='char',
ngram_range=(1, 2),
)
pipeline = api.Pipeline(
dataset=['ΠΡΠ°ΡΠ½ΠΎΡΡΡΠΊ', 'ΠΠΎΡΠΊΠ²Π°', 'ΠΠ»Π°Π΄ΠΈΠ²ΠΎΡΡΠΎΠΊ'],
preprocessing=[preprocessing.TextLower()],
model=model_embedding,
searcher=similarity_search.FaissSearch,
verbose=True,
)
# Pipeline ready!
- ΠΠ°ΠΉΠ΄ΡΠΌ 3 ΡΡ ΠΎΠΆΠΈΡ ΡΠ΅ΠΊΡΡΠΎΠ² Π² Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ Π½Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠΉ Π²Π²ΠΎΠ΄ "ΠΡΠ°ΡΠ½ΡΠΉ ΡΡΡΠΊ":
pipeline.search('ΠΡΠ°ΡΠ½ΡΠΉ ΡΡΡΠΊ', 3, ascending=True)
# return: pandas.DataFrame
ΠΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΡΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠΎΠ΄Π° API.
ΠΡΠΈΠΌΠ΅Ρ WEB-ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°, Π² ΠΊΠΎΡΠΎΡΡΠΉ Π²Π½Π΅Π΄ΡΠ΅Π½Π° Π΄Π°Π½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°.
- ΠΠΎΠ±Π΅Π»Π΅Π² ΠΠ°ΠΊΡΠΈΠΌ β Π°Π²ΡΠΎΡ ΠΈ Π΅Π΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΡΠΉ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ.