Shchushch commited on
Commit
b560ecb
1 Parent(s): d80f9cb
assets/aneks_model.pt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:05b2226d365c1d2d545c298aa55b53994400253a785232fdb3b782f98561df02
3
+ size 500971693
assets/embs.pickle ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6b6aa7e9160d808b12adf62fbf647133584b7d2e94a50c31c344f3e826dd254b
3
+ size 83429968
assets/final_and_lem.csv ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:af569b68f81245944003f31c1571d9edba89ecd242f3aafac11368245934901b
3
+ size 170696424
assets/find.py ADDED
@@ -0,0 +1,184 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ import pandas as pd
3
+ from transformers import AutoTokenizer, AutoModel,BertTokenizer,BertModel
4
+ import numpy as np
5
+ import pickle
6
+ # import sklearn
7
+ import nltk
8
+ nltk.download('stopwords')
9
+ nltk.download('averaged_perceptron_tagger')
10
+ nltk.download('wordnet')
11
+ from nltk.stem import WordNetLemmatizer
12
+ from nltk.tag import pos_tag
13
+ from nltk.corpus import stopwords
14
+ from pymystem3 import Mystem
15
+ from functools import lru_cache
16
+ import string
17
+ import faiss
18
+ from tqdm import tqdm
19
+ DEVICE='cpu'
20
+ tokenizer = AutoTokenizer.from_pretrained("cointegrated/rubert-tiny2")
21
+ model = AutoModel.from_pretrained("cointegrated/rubert-tiny2")
22
+ eng_stop_words = stopwords.words('english')
23
+ with open('assets/russian.txt', 'r') as f:
24
+ ru_stop_words = f.read()
25
+ ru_stop_words=ru_stop_words.split('\n')
26
+ allow="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyzАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя0123456789-' \n\t"
27
+ #Задаём стеммер
28
+ m= Mystem()
29
+ def embed_bert_cls(text, model=model, tokenizer=tokenizer)->np.array:
30
+ """
31
+ Встраивает входной текст с использованием модели на основе BERT.
32
+
33
+ Аргументы:
34
+ text (str): Входной текст для встраивания.
35
+ model (torch.nn.Module): Модель на основе BERT для использования при встраивании.
36
+ tokenizer (transformers.PreTrainedTokenizer): Токенизатор для токенизации текста.
37
+
38
+ Возвращает:
39
+ numpy.ndarray: Встроенное представление входного текста.
40
+ """
41
+ # Токенизируем текст и преобразуем его в PyTorch тензоры
42
+ t = tokenizer(text, padding=True, truncation=True, return_tensors='pt')
43
+
44
+ # Отключаем вычисление градиентов
45
+ with torch.no_grad():
46
+ # Пропускаем тензоры через модель
47
+ model_output = model(**{k: v.to(DEVICE) for k, v in t.items()})
48
+
49
+ # Извлекаем последний скрытый состояние из выходных данных модели
50
+ embeddings = model_output.last_hidden_state[:, 0, :]
51
+
52
+ # Нормализуем встроенные представления
53
+ embeddings = torch.nn.functional.normalize(embeddings)
54
+ embeddings=embeddings[0].cpu().numpy()
55
+
56
+ # Преобразуем встроенные представления в массив numpy и возвращаем первый элемент
57
+ return embeddings
58
+
59
+ def lems_eng(text):
60
+ if type(text)==type('text'):
61
+ text=text.split()
62
+ wnl= WordNetLemmatizer()
63
+ lemmatized= []
64
+ pos_map = {
65
+ 'NN': 'n', # существительное
66
+ 'NNS': 'n', # существительное (множественное число)
67
+ 'NNP': 'n', # собственное имя (единственное число)
68
+ 'NNPS': 'n', # собственное имя (множественное число)
69
+ 'VB': 'v', # глагол (инфинитив)
70
+ 'VBD': 'v', # глагол (прошедшее время)
71
+ 'VBG': 'v', # глагол (настоящее причастие/герундий)
72
+ 'VBN': 'v', # глагол (прошедшее причастие)
73
+ 'JJ': 'a', # прилагательное
74
+ 'JJR': 'a', # прилагательное (сравнительная степень)
75
+ 'JJS': 'a', # прилагательное (превосходная степень)
76
+ 'RB': 'r', # наречие
77
+ 'RBR': 'r', # наречие (сравнительная степень)
78
+ 'RBS': 'r', # наречие (превосходная степень)
79
+ 'PRP': 'n', # личное местоимение
80
+ 'PRP$': 'n', # притяжательное местоимение
81
+ 'DT': 'n' # определитель
82
+ }
83
+ pos_tags = pos_tag(text)
84
+ lemmas = []
85
+ for token, pos in pos_tags:
86
+ pos = pos_map.get(pos,'n')
87
+ lemma = wnl.lemmatize(token, pos=pos)
88
+ lemmas.append(lemma)
89
+ return ' '.join(lemmas)
90
+
91
+ def lems_rus(texts):
92
+ if type(texts)==type([]):
93
+ texts=' '.join(texts)
94
+ #lemmatized =[]
95
+ lemmas = m.lemmatize(texts)
96
+ return ''.join(lemmas)
97
+ def clean(text: str)-> str:
98
+
99
+
100
+ text = ''.join(c for c in text if c in allow)
101
+ text= text.split()
102
+ text = [word for word in text if word.lower() not in ru_stop_words]
103
+ text = [word for word in text if word.lower() not in eng_stop_words]
104
+ return ' '.join(text)
105
+
106
+
107
+ def improved_lemmatizer(texts,batch_size=1000):
108
+ if type(texts)==type('text'):
109
+ texts=texts.split()
110
+
111
+
112
+
113
+
114
+
115
+
116
+
117
+ #Читаем датасет книжек
118
+ df=pd.read_csv('assets/final_and_lem.csv',index_col=0).reset_index(drop=True)
119
+
120
+ # embs=[]
121
+ # for i in tqdm(df.index):
122
+ # embs.append(embed_bert_cls(df['annotation'][i]))
123
+
124
+ # with open('embs.pickle', 'wb') as f:
125
+ # pickle.dump(embs, f)
126
+
127
+
128
+
129
+ #Читаем эмбединги
130
+ with open('assets/embs.pickle', 'rb') as f:
131
+ embs = pickle.load(f)
132
+ #df['']
133
+ embs =np.array(embs)
134
+ print('Тип выхода:',type(embs),'Размер выхода: ',embs.shape)
135
+
136
+ #Читаем стоп-слова
137
+
138
+ index=faiss.IndexFlatL2(embs.shape[1])
139
+ index.add(embs)
140
+ @lru_cache()
141
+ def find_similar(text, k=10):
142
+ """
143
+ Находит похожие тексты на основе косинусного сходства.
144
+
145
+ Аргументы:
146
+ text (str): Входной текст для поиска похожих текстов.
147
+ embeddings (numpy.ndarray): Предварительно вычисленные встроенные представления текстов.
148
+ threshold (float): Порог, выше которого тексты считаются похожими.
149
+
150
+ Возвращает:
151
+ numpy.ndarray: Сходства между входным текстом и каждым текстом во встроенных представлениях.
152
+ """
153
+
154
+ # Встраиваем входной текст
155
+ text_emb = embed_bert_cls(text)
156
+ print('Текстовые эмбединги\t',text_emb )
157
+ text_emb = np.expand_dims(text_emb, axis=0)
158
+ print(f'Тип поискового запроса: {type(text_emb)}\nРазмер полученного запроса: {text_emb.shape}')#\nСам запрос:\n{text_emb}\n')
159
+ dist,idx=index.search(text_emb,k)
160
+ print(f'Расстнояния:{dist}\tАйдишки{idx}')
161
+ return dist.squeeze()[::-1],idx.squeeze()[::-1]#,idx
162
+ #@lru_cache()
163
+ # def find_unsimilar(text,n=10, d=embs.shape[0]):
164
+ # """
165
+ # Находит похожие тексты на основе косинусного сходства.
166
+
167
+ # Аргументы:
168
+ # text (str): Входной текст для поиска похожих текстов.
169
+ # embeddings (numpy.ndarray): Предварительно вычисленные встроенные представления текстов.
170
+ # threshold (float): Порог, выше которого тексты считаются похожими.
171
+
172
+ # Возвращает:
173
+ # numpy.ndarray: Сходства между входным текстом и каждым текстом во встроенных представлениях.
174
+ # """
175
+
176
+ # # Встраиваем входной текст
177
+ # text_emb = embed_bert_cls(text)
178
+ # text_emb = np.expand_dims(text_emb, axis=0)
179
+ # print(f'Тип поискового запроса: {type(text_emb)}\nРазмер полученного запроса: {text_emb.shape}')#\nСам запрос:\n{text_emb}\n')
180
+ # dist,idx=index.search(text_emb,d)
181
+ # dist=dist.flatten()[::-1]
182
+ # idx=idx.flatten()[::-1]
183
+
184
+ # return dist[:n],idx[:n]#,idx
assets/imagenet.py ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import torch
2
+ from torchvision import transforms
3
+
4
+ import json
5
+ #import matplotlib.pyplot as plt
6
+
7
+ from torchvision.models import inception_v3,Inception_V3_Weights
8
+ model = inception_v3(weights=Inception_V3_Weights.DEFAULT)
9
+
10
+
11
+ with open('assets/imagenet_classes.json', 'r') as f:
12
+ class_labels = json.load(f)
13
+ class_labels=[value for _,value in class_labels.items()]
14
+ def img_class(img):
15
+ transform = transforms.Compose([
16
+ transforms.Resize((299, 299)), # Размер, ожидаемый Inception_v3
17
+ transforms.ToTensor(),
18
+ ])
19
+
20
+ input_image = transform(img).unsqueeze(0) # Добавьте размерность пакета (batch dimension)
21
+
22
+ device = torch.device("cuda" if torch.cuda.is_available() else 'mps')
23
+ model.to(device)
24
+ model.eval()
25
+ input_image = input_image.to(device)
26
+ with torch.no_grad():
27
+ output = model(input_image)
28
+ return class_labels[torch.argmax(output).item()]
assets/imagenet_classes.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"0": "tench, Tinca tinca", "1": "goldfish, Carassius auratus", "2": "great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias", "3": "tiger shark, Galeocerdo cuvieri", "4": "hammerhead, hammerhead shark", "5": "electric ray, crampfish, numbfish, torpedo", "6": "stingray", "7": "cock", "8": "hen", "9": "ostrich, Struthio camelus", "10": "brambling, Fringilla montifringilla", "11": "goldfinch, Carduelis carduelis", "12": "house finch, linnet, Carpodacus mexicanus", "13": "junco, snowbird", "14": "indigo bunting, indigo finch, indigo bird, Passerina cyanea", "15": "robin, American robin, Turdus migratorius", "16": "bulbul", "17": "jay", "18": "magpie", "19": "chickadee", "20": "water ouzel, dipper", "21": "kite", "22": "bald eagle, American eagle, Haliaeetus leucocephalus", "23": "vulture", "24": "great grey owl, great gray owl, Strix nebulosa", "25": "European fire salamander, Salamandra salamandra", "26": "common newt, Triturus vulgaris", "27": "eft", "28": "spotted salamander, Ambystoma maculatum", "29": "axolotl, mud puppy, Ambystoma mexicanum", "30": "bullfrog, Rana catesbeiana", "31": "tree frog, tree-frog", "32": "tailed frog, bell toad, ribbed toad, tailed toad, Ascaphus trui", "33": "loggerhead, loggerhead turtle, Caretta caretta", "34": "leatherback turtle, leatherback, leathery turtle, Dermochelys coriacea", "35": "mud turtle", "36": "terrapin", "37": "box turtle, box tortoise", "38": "banded gecko", "39": "common iguana, iguana, Iguana iguana", "40": "American chameleon, anole, Anolis carolinensis", "41": "whiptail, whiptail lizard", "42": "agama", "43": "frilled lizard, Chlamydosaurus kingi", "44": "alligator lizard", "45": "Gila monster, Heloderma suspectum", "46": "green lizard, Lacerta viridis", "47": "African chameleon, Chamaeleo chamaeleon", "48": "Komodo dragon, Komodo lizard, dragon lizard, giant lizard, Varanus komodoensis", "49": "African crocodile, Nile crocodile, Crocodylus niloticus", "50": "American alligator, Alligator mississipiensis", "51": "triceratops", "52": "thunder snake, worm snake, Carphophis amoenus", "53": "ringneck snake, ring-necked snake, ring snake", "54": "hognose snake, puff adder, sand viper", "55": "green snake, grass snake", "56": "king snake, kingsnake", "57": "garter snake, grass snake", "58": "water snake", "59": "vine snake", "60": "night snake, Hypsiglena torquata", "61": "boa constrictor, Constrictor constrictor", "62": "rock python, rock snake, Python sebae", "63": "Indian cobra, Naja naja", "64": "green mamba", "65": "sea snake", "66": "horned viper, cerastes, sand viper, horned asp, Cerastes cornutus", "67": "diamondback, diamondback rattlesnake, Crotalus adamanteus", "68": "sidewinder, horned rattlesnake, Crotalus cerastes", "69": "trilobite", "70": "harvestman, daddy longlegs, Phalangium opilio", "71": "scorpion", "72": "black and gold garden spider, Argiope aurantia", "73": "barn spider, Araneus cavaticus", "74": "garden spider, Aranea diademata", "75": "black widow, Latrodectus mactans", "76": "tarantula", "77": "wolf spider, hunting spider", "78": "tick", "79": "centipede", "80": "black grouse", "81": "ptarmigan", "82": "ruffed grouse, partridge, Bonasa umbellus", "83": "prairie chicken, prairie grouse, prairie fowl", "84": "peacock", "85": "quail", "86": "partridge", "87": "African grey, African gray, Psittacus erithacus", "88": "macaw", "89": "sulphur-crested cockatoo, Kakatoe galerita, Cacatua galerita", "90": "lorikeet", "91": "coucal", "92": "bee eater", "93": "hornbill", "94": "hummingbird", "95": "jacamar", "96": "toucan", "97": "drake", "98": "red-breasted merganser, Mergus serrator", "99": "goose", "100": "black swan, Cygnus atratus", "101": "tusker", "102": "echidna, spiny anteater, anteater", "103": "platypus, duckbill, duckbilled platypus, duck-billed platypus, Ornithorhynchus anatinus", "104": "wallaby, brush kangaroo", "105": "koala, koala bear, kangaroo bear, native bear, Phascolarctos cinereus", "106": "wombat", "107": "jellyfish", "108": "sea anemone, anemone", "109": "brain coral", "110": "flatworm, platyhelminth", "111": "nematode, nematode worm, roundworm", "112": "conch", "113": "snail", "114": "slug", "115": "sea slug, nudibranch", "116": "chiton, coat-of-mail shell, sea cradle, polyplacophore", "117": "chambered nautilus, pearly nautilus, nautilus", "118": "Dungeness crab, Cancer magister", "119": "rock crab, Cancer irroratus", "120": "fiddler crab", "121": "king crab, Alaska crab, Alaskan king crab, Alaska king crab, Paralithodes camtschatica", "122": "American lobster, Northern lobster, Maine lobster, Homarus americanus", "123": "spiny lobster, langouste, rock lobster, crawfish, crayfish, sea crawfish", "124": "crayfish, crawfish, crawdad, crawdaddy", "125": "hermit crab", "126": "isopod", "127": "white stork, Ciconia ciconia", "128": "black stork, Ciconia nigra", "129": "spoonbill", "130": "flamingo", "131": "little blue heron, Egretta caerulea", "132": "American egret, great white heron, Egretta albus", "133": "bittern", "134": "crane", "135": "limpkin, Aramus pictus", "136": "European gallinule, Porphyrio porphyrio", "137": "American coot, marsh hen, mud hen, water hen, Fulica americana", "138": "bustard", "139": "ruddy turnstone, Arenaria interpres", "140": "red-backed sandpiper, dunlin, Erolia alpina", "141": "redshank, Tringa totanus", "142": "dowitcher", "143": "oystercatcher, oyster catcher", "144": "pelican", "145": "king penguin, Aptenodytes patagonica", "146": "albatross, mollymawk", "147": "grey whale, gray whale, devilfish, Eschrichtius gibbosus, Eschrichtius robustus", "148": "killer whale, killer, orca, grampus, sea wolf, Orcinus orca", "149": "dugong, Dugong dugon", "150": "sea lion", "151": "Chihuahua", "152": "Japanese spaniel", "153": "Maltese dog, Maltese terrier, Maltese", "154": "Pekinese, Pekingese, Peke", "155": "Shih-Tzu", "156": "Blenheim spaniel", "157": "papillon", "158": "toy terrier", "159": "Rhodesian ridgeback", "160": "Afghan hound, Afghan", "161": "basset, basset hound", "162": "beagle", "163": "bloodhound, sleuthhound", "164": "bluetick", "165": "black-and-tan coonhound", "166": "Walker hound, Walker foxhound", "167": "English foxhound", "168": "redbone", "169": "borzoi, Russian wolfhound", "170": "Irish wolfhound", "171": "Italian greyhound", "172": "whippet", "173": "Ibizan hound, Ibizan Podenco", "174": "Norwegian elkhound, elkhound", "175": "otterhound, otter hound", "176": "Saluki, gazelle hound", "177": "Scottish deerhound, deerhound", "178": "Weimaraner", "179": "Staffordshire bullterrier, Staffordshire bull terrier", "180": "American Staffordshire terrier, Staffordshire terrier, American pit bull terrier, pit bull terrier", "181": "Bedlington terrier", "182": "Border terrier", "183": "Kerry blue terrier", "184": "Irish terrier", "185": "Norfolk terrier", "186": "Norwich terrier", "187": "Yorkshire terrier", "188": "wire-haired fox terrier", "189": "Lakeland terrier", "190": "Sealyham terrier, Sealyham", "191": "Airedale, Airedale terrier", "192": "cairn, cairn terrier", "193": "Australian terrier", "194": "Dandie Dinmont, Dandie Dinmont terrier", "195": "Boston bull, Boston terrier", "196": "miniature schnauzer", "197": "giant schnauzer", "198": "standard schnauzer", "199": "Scotch terrier, Scottish terrier, Scottie", "200": "Tibetan terrier, chrysanthemum dog", "201": "silky terrier, Sydney silky", "202": "soft-coated wheaten terrier", "203": "West Highland white terrier", "204": "Lhasa, Lhasa apso", "205": "flat-coated retriever", "206": "curly-coated retriever", "207": "golden retriever", "208": "Labrador retriever", "209": "Chesapeake Bay retriever", "210": "German short-haired pointer", "211": "vizsla, Hungarian pointer", "212": "English setter", "213": "Irish setter, red setter", "214": "Gordon setter", "215": "Brittany spaniel", "216": "clumber, clumber spaniel", "217": "English springer, English springer spaniel", "218": "Welsh springer spaniel", "219": "cocker spaniel, English cocker spaniel, cocker", "220": "Sussex spaniel", "221": "Irish water spaniel", "222": "kuvasz", "223": "schipperke", "224": "groenendael", "225": "malinois", "226": "briard", "227": "kelpie", "228": "komondor", "229": "Old English sheepdog, bobtail", "230": "Shetland sheepdog, Shetland sheep dog, Shetland", "231": "collie", "232": "Border collie", "233": "Bouvier des Flandres, Bouviers des Flandres", "234": "Rottweiler", "235": "German shepherd, German shepherd dog, German police dog, alsatian", "236": "Doberman, Doberman pinscher", "237": "miniature pinscher", "238": "Greater Swiss Mountain dog", "239": "Bernese mountain dog", "240": "Appenzeller", "241": "EntleBucher", "242": "boxer", "243": "bull mastiff", "244": "Tibetan mastiff", "245": "French bulldog", "246": "Great Dane", "247": "Saint Bernard, St Bernard", "248": "Eskimo dog, husky", "249": "malamute, malemute, Alaskan malamute", "250": "Siberian husky", "251": "dalmatian, coach dog, carriage dog", "252": "affenpinscher, monkey pinscher, monkey dog", "253": "basenji", "254": "pug, pug-dog", "255": "Leonberg", "256": "Newfoundland, Newfoundland dog", "257": "Great Pyrenees", "258": "Samoyed, Samoyede", "259": "Pomeranian", "260": "chow, chow chow", "261": "keeshond", "262": "Brabancon griffon", "263": "Pembroke, Pembroke Welsh corgi", "264": "Cardigan, Cardigan Welsh corgi", "265": "toy poodle", "266": "miniature poodle", "267": "standard poodle", "268": "Mexican hairless", "269": "timber wolf, grey wolf, gray wolf, Canis lupus", "270": "white wolf, Arctic wolf, Canis lupus tundrarum", "271": "red wolf, maned wolf, Canis rufus, Canis niger", "272": "coyote, prairie wolf, brush wolf, Canis latrans", "273": "dingo, warrigal, warragal, Canis dingo", "274": "dhole, Cuon alpinus", "275": "African hunting dog, hyena dog, Cape hunting dog, Lycaon pictus", "276": "hyena, hyaena", "277": "red fox, Vulpes vulpes", "278": "kit fox, Vulpes macrotis", "279": "Arctic fox, white fox, Alopex lagopus", "280": "grey fox, gray fox, Urocyon cinereoargenteus", "281": "tabby, tabby catamount", "282": "tiger cat", "283": "Persian cat", "284": "Siamese cat, Siamese", "285": "Egyptian cat", "286": "cougar, puma, catamount, mountain lion, painter, panther, Felis concolor", "287": "lynx, catamount", "288": "leopard, Panthera pardus", "289": "snow leopard, ounce, Panthera uncia", "290": "jaguar, panther, Panthera onca, Felis onca", "291": "lion, king of beasts, Panthera leo", "292": "tiger, Panthera tigris", "293": "cheetah, chetah, Acinonyx jubatus", "294": "brown bear, bruin, Ursus arctos", "295": "American black bear, black bear, Ursus americanus, Euarctos americanus", "296": "ice bear, polar bear, Ursus Maritimus, Thalarctos maritimus", "297": "sloth bear, Melursus ursinus, Ursus ursinus", "298": "mongoose", "299": "meerkat, mierkat", "300": "tiger beetle", "301": "ladybug, ladybeetle, lady beetle, ladybird, ladybird beetle", "302": "ground beetle, carabid beetle", "303": "long-horned beetle, longicorn, longicorn beetle", "304": "leaf beetle, chrysomelid", "305": "dung beetle", "306": "rhinoceros beetle", "307": "weevil", "308": "fly", "309": "bee", "310": "ant, emmet, pismire", "311": "grasshopper, hopper", "312": "cricket", "313": "walking stick, walkingstick, stick insect", "314": "cockroach, roach", "315": "mantis, mantid", "316": "cicada, cicala", "317": "leafhopper", "318": "lacewing, lacewing fly", "319": "\"dragonfly, darning needle, devils darning needle, sewing needle, snake feeder, snake doctor, mosquito hawk, skeeter hawk\"", "320": "damselfly", "321": "admiral", "322": "ringlet, ringlet butterfly", "323": "monarch, monarch butterfly, milkweed butterfly, Danaus plexippus", "324": "cabbage butterfly", "325": "sulphur butterfly, sulfur butterfly", "326": "lycaenid, lycaenid butterfly", "327": "starfish, sea star", "328": "sea urchin", "329": "sea cucumber, holothurian", "330": "wood rabbit, cottontail, cottontail rabbit", "331": "hare", "332": "Angora, Angora rabbit", "333": "hamster", "334": "porcupine, hedgehog", "335": "fox squirrel, eastern fox squirrel, Sciurus niger", "336": "marmot", "337": "beaver", "338": "guinea pig, Cavia cobaya", "339": "sorrel", "340": "zebra", "341": "hog, pig, grunter, squealer, Sus scrofa", "342": "wild boar, boar, Sus scrofa", "343": "warthog", "344": "hippopotamus, hippo, river horse, Hippopotamus amphibius", "345": "ox", "346": "water buffalo, water ox, Asiatic buffalo, Bubalus bubalis", "347": "bison", "348": "ram, tup", "349": "bighorn, bighorn sheep, cimarron, Rocky Mountain bighorn, Rocky Mountain sheep, Ovis canadensis", "350": "ibex, Capra ibex", "351": "hartebeest", "352": "impala, Aepyceros melampus", "353": "gazelle", "354": "Arabian camel, dromedary, Camelus dromedarius", "355": "llama", "356": "weasel", "357": "mink", "358": "polecat, fitch, foulmart, foumart, Mustela putorius", "359": "black-footed ferret, ferret, Mustela nigripes", "360": "otter", "361": "skunk, polecat, wood pussy", "362": "badger", "363": "armadillo", "364": "three-toed sloth, ai, Bradypus tridactylus", "365": "orangutan, orang, orangutang, Pongo pygmaeus", "366": "gorilla, Gorilla gorilla", "367": "chimpanzee, chimp, Pan troglodytes", "368": "gibbon, Hylobates lar", "369": "siamang, Hylobates syndactylus, Symphalangus syndactylus", "370": "guenon, guenon monkey", "371": "patas, hussar monkey, Erythrocebus patas", "372": "baboon", "373": "macaque", "374": "langur", "375": "colobus, colobus monkey", "376": "proboscis monkey, Nasalis larvatus", "377": "marmoset", "378": "capuchin, ringtail, Cebus capucinus", "379": "howler monkey, howler", "380": "titi, titi monkey", "381": "spider monkey, Ateles geoffroyi", "382": "squirrel monkey, Saimiri sciureus", "383": "Madagascar cat, ring-tailed lemur, Lemur catta", "384": "indri, indris, Indri indri, Indri brevicaudatus", "385": "Indian elephant, Elephas maximus", "386": "African elephant, Loxodonta africana", "387": "lesser panda, red panda, panda, bear cat, cat bear, Ailurus fulgens", "388": "giant panda, panda, panda bear, coon bear, Ailuropoda melanoleuca", "389": "barracouta, snoek", "390": "eel", "391": "coho, cohoe, coho salmon, blue jack, silver salmon, Oncorhynchus kisutch", "392": "rock beauty, Holocanthus tricolor", "393": "anemone fish", "394": "sturgeon", "395": "gar, garfish, garpike, billfish, Lepisosteus osseus", "396": "lionfish", "397": "puffer, pufferfish, blowfish, globefish", "398": "abacus", "399": "abaya", "400": "\"academic gown, academic robe, judges robe\"", "401": "accordion, piano accordion, squeeze box", "402": "acoustic guitar", "403": "aircraft carrier, carrier, flattop, attack aircraft carrier", "404": "airliner", "405": "airship, dirigible", "406": "altar", "407": "ambulance", "408": "amphibian, amphibious vehicle", "409": "analog clock", "410": "apiary, bee house", "411": "apron", "412": "ashcan, trash can, garbage can, wastebin, ash bin, ash-bin, ashbin, dustbin, trash barrel, trash bin", "413": "assault rifle, assault gun", "414": "backpack, back pack, knapsack, packsack, rucksack, haversack", "415": "bakery, bakeshop, bakehouse", "416": "balance beam, beam", "417": "balloon", "418": "ballpoint, ballpoint pen, ballpen, Biro", "419": "Band Aid", "420": "banjo", "421": "bannister, banister, balustrade, balusters, handrail", "422": "barbell", "423": "barber chair", "424": "barbershop", "425": "barn", "426": "barometer", "427": "barrel, cask", "428": "barrow, garden cart, lawn cart, wheelbarrow", "429": "baseball", "430": "basketball", "431": "bassinet", "432": "bassoon", "433": "bathing cap, swimming cap", "434": "bath towel", "435": "bathtub, bathing tub, bath, tub", "436": "beach wagon, station wagon, wagon, estate car, beach waggon, station waggon, waggon", "437": "beacon, lighthouse, beacon light, pharos", "438": "beaker", "439": "bearskin, busby, shako", "440": "beer bottle", "441": "beer glass", "442": "bell cote, bell cot", "443": "bib", "444": "bicycle-built-for-two, tandem bicycle, tandem", "445": "bikini, two-piece", "446": "binder, ring-binder", "447": "binoculars, field glasses, opera glasses", "448": "birdhouse", "449": "boathouse", "450": "bobsled, bobsleigh, bob", "451": "bolo tie, bolo, bola tie, bola", "452": "bonnet, poke bonnet", "453": "bookcase", "454": "bookshop, bookstore, bookstall", "455": "bottlecap", "456": "bow", "457": "bow tie, bow-tie, bowtie", "458": "brass, memorial tablet, plaque", "459": "brassiere, bra, bandeau", "460": "breakwater, groin, groyne, mole, bulwark, seawall, jetty", "461": "breastplate, aegis, egis", "462": "broom", "463": "bucket, pail", "464": "buckle", "465": "bulletproof vest", "466": "bullet train, bullet", "467": "butcher shop, meat market", "468": "cab, hack, taxi, taxicab", "469": "caldron, cauldron", "470": "candle, taper, wax light", "471": "cannon", "472": "canoe", "473": "can opener, tin opener", "474": "cardigan", "475": "car mirror", "476": "carousel, carrousel, merry-go-round, roundabout, whirligig", "477": "\"carpenters kit, tool kit\"", "478": "carton", "479": "car wheel", "480": "cash machine, cash dispenser, automated teller machine, automatic teller machine, automated teller, automatic teller, ATM", "481": "cassette", "482": "cassette player", "483": "castle", "484": "catamaran", "485": "CD player", "486": "cello, violoncello", "487": "cellular telephone, cellular phone, cellphone, cell, mobile phone", "488": "chain", "489": "chainlink fence", "490": "chain mail, ring mail, mail, chain armor, chain armour, ring armor, ring armour", "491": "chain saw, chainsaw", "492": "chest", "493": "chiffonier, commode", "494": "chime, bell, gong", "495": "china cabinet, china closet", "496": "Christmas stocking", "497": "church, church building", "498": "cinema, movie theater, movie theatre, movie house, picture palace", "499": "cleaver, meat cleaver, chopper", "500": "cliff dwelling", "501": "cloak", "502": "clog, geta, patten, sabot", "503": "cocktail shaker", "504": "coffee mug", "505": "coffeepot", "506": "coil, spiral, volute, whorl, helix", "507": "combination lock", "508": "computer keyboard, keypad", "509": "confectionery, confectionary, candy store", "510": "container ship, containership, container vessel", "511": "convertible", "512": "corkscrew, bottle screw", "513": "cornet, horn, trumpet, trump", "514": "cowboy boot", "515": "cowboy hat, ten-gallon hat", "516": "cradle", "517": "crane", "518": "crash helmet", "519": "crate", "520": "crib, cot", "521": "Crock Pot", "522": "croquet ball", "523": "crutch", "524": "cuirass", "525": "dam, dike, dyke", "526": "desk", "527": "desktop computer", "528": "dial telephone, dial phone", "529": "diaper, nappy, napkin", "530": "digital clock", "531": "digital watch", "532": "dining table, board", "533": "dishrag, dishcloth", "534": "dishwasher, dish washer, dishwashing machine", "535": "disk brake, disc brake", "536": "dock, dockage, docking facility", "537": "dogsled, dog sled, dog sleigh", "538": "dome", "539": "doormat, welcome mat", "540": "drilling platform, offshore rig", "541": "drum, membranophone, tympan", "542": "drumstick", "543": "dumbbell", "544": "Dutch oven", "545": "electric fan, blower", "546": "electric guitar", "547": "electric locomotive", "548": "entertainment center", "549": "envelope", "550": "espresso maker", "551": "face powder", "552": "feather boa, boa", "553": "file, file cabinet, filing cabinet", "554": "fireboat", "555": "fire engine, fire truck", "556": "fire screen, fireguard", "557": "flagpole, flagstaff", "558": "flute, transverse flute", "559": "folding chair", "560": "football helmet", "561": "forklift", "562": "fountain", "563": "fountain pen", "564": "four-poster", "565": "freight car", "566": "French horn, horn", "567": "frying pan, frypan, skillet", "568": "fur coat", "569": "garbage truck, dustcart", "570": "gasmask, respirator, gas helmet", "571": "gas pump, gasoline pump, petrol pump, island dispenser", "572": "goblet", "573": "go-kart", "574": "golf ball", "575": "golfcart, golf cart", "576": "gondola", "577": "gong, tam-tam", "578": "gown", "579": "grand piano, grand", "580": "greenhouse, nursery, glasshouse", "581": "grille, radiator grille", "582": "grocery store, grocery, food market, market", "583": "guillotine", "584": "hair slide", "585": "hair spray", "586": "half track", "587": "hammer", "588": "hamper", "589": "hand blower, blow dryer, blow drier, hair dryer, hair drier", "590": "hand-held computer, hand-held microcomputer", "591": "handkerchief, hankie, hanky, hankey", "592": "hard disc, hard disk, fixed disk", "593": "harmonica, mouth organ, harp, mouth harp", "594": "harp", "595": "harvester, reaper", "596": "hatchet", "597": "holster", "598": "home theater, home theatre", "599": "honeycomb", "600": "hook, claw", "601": "hoopskirt, crinoline", "602": "horizontal bar, high bar", "603": "horse cart, horse-cart", "604": "hourglass", "605": "iPod", "606": "iron, smoothing iron", "607": "\"jack-o-lantern\"", "608": "jean, blue jean, denim", "609": "jeep, landrover", "610": "jersey, T-shirt, tee shirt", "611": "jigsaw puzzle", "612": "jinrikisha, ricksha, rickshaw", "613": "joystick", "614": "kimono", "615": "knee pad", "616": "knot", "617": "lab coat, laboratory coat", "618": "ladle", "619": "lampshade, lamp shade", "620": "laptop, laptop computer", "621": "lawn mower, mower", "622": "lens cap, lens cover", "623": "letter opener, paper knife, paperknife", "624": "library", "625": "lifeboat", "626": "lighter, light, igniter, ignitor", "627": "limousine, limo", "628": "liner, ocean liner", "629": "lipstick, lip rouge", "630": "Loafer", "631": "lotion", "632": "loudspeaker, speaker, speaker unit, loudspeaker system, speaker system", "633": "\"loupe, jewelers loupe\"", "634": "lumbermill, sawmill", "635": "magnetic compass", "636": "mailbag, postbag", "637": "mailbox, letter box", "638": "maillot", "639": "maillot, tank suit", "640": "manhole cover", "641": "maraca", "642": "marimba, xylophone", "643": "mask", "644": "matchstick", "645": "maypole", "646": "maze, labyrinth", "647": "measuring cup", "648": "medicine chest, medicine cabinet", "649": "megalith, megalithic structure", "650": "microphone, mike", "651": "microwave, microwave oven", "652": "military uniform", "653": "milk can", "654": "minibus", "655": "miniskirt, mini", "656": "minivan", "657": "missile", "658": "mitten", "659": "mixing bowl", "660": "mobile home, manufactured home", "661": "Model T", "662": "modem", "663": "monastery", "664": "monitor", "665": "moped", "666": "mortar", "667": "mortarboard", "668": "mosque", "669": "mosquito net", "670": "motor scooter, scooter", "671": "mountain bike, all-terrain bike, off-roader", "672": "mountain tent", "673": "mouse, computer mouse", "674": "mousetrap", "675": "moving van", "676": "muzzle", "677": "nail", "678": "neck brace", "679": "necklace", "680": "nipple", "681": "notebook, notebook computer", "682": "obelisk", "683": "oboe, hautboy, hautbois", "684": "ocarina, sweet potato", "685": "odometer, hodometer, mileometer, milometer", "686": "oil filter", "687": "organ, pipe organ", "688": "oscilloscope, scope, cathode-ray oscilloscope, CRO", "689": "overskirt", "690": "oxcart", "691": "oxygen mask", "692": "packet", "693": "paddle, boat paddle", "694": "paddlewheel, paddle wheel", "695": "padlock", "696": "paintbrush", "697": "\"pajama, pyjama, pjs, jammies\"", "698": "palace", "699": "panpipe, pandean pipe, syrinx", "700": "paper towel", "701": "parachute, chute", "702": "parallel bars, bars", "703": "park bench", "704": "parking meter", "705": "passenger car, coach, carriage", "706": "patio, terrace", "707": "pay-phone, pay-station", "708": "pedestal, plinth, footstall", "709": "pencil box, pencil case", "710": "pencil sharpener", "711": "perfume, essence", "712": "Petri dish", "713": "photocopier", "714": "pick, plectrum, plectron", "715": "pickelhaube", "716": "picket fence, paling", "717": "pickup, pickup truck", "718": "pier", "719": "piggy bank, penny bank", "720": "pill bottle", "721": "pillow", "722": "ping-pong ball", "723": "pinwheel", "724": "pirate, pirate ship", "725": "pitcher, ewer", "726": "\"plane, carpenters plane, woodworking plane\"", "727": "planetarium", "728": "plastic bag", "729": "plate rack", "730": "plow, plough", "731": "\"plunger, plumbers helper\"", "732": "Polaroid camera, Polaroid Land camera", "733": "pole", "734": "police van, police wagon, paddy wagon, patrol wagon, wagon, black Maria", "735": "poncho", "736": "pool table, billiard table, snooker table", "737": "pop bottle, soda bottle", "738": "pot, flowerpot", "739": "\"potters wheel\"", "740": "power drill", "741": "prayer rug, prayer mat", "742": "printer", "743": "prison, prison house", "744": "projectile, missile", "745": "projector", "746": "puck, hockey puck", "747": "punching bag, punch bag, punching ball, punchball", "748": "purse", "749": "quill, quill pen", "750": "quilt, comforter, comfort, puff", "751": "racer, race car, racing car", "752": "racket, racquet", "753": "radiator", "754": "radio, wireless", "755": "radio telescope, radio reflector", "756": "rain barrel", "757": "recreational vehicle, RV, R.V.", "758": "reel", "759": "reflex camera", "760": "refrigerator, icebox", "761": "remote control, remote", "762": "restaurant, eating house, eating place, eatery", "763": "revolver, six-gun, six-shooter", "764": "rifle", "765": "rocking chair, rocker", "766": "rotisserie", "767": "rubber eraser, rubber, pencil eraser", "768": "rugby ball", "769": "rule, ruler", "770": "running shoe", "771": "safe", "772": "safety pin", "773": "saltshaker, salt shaker", "774": "sandal", "775": "sarong", "776": "sax, saxophone", "777": "scabbard", "778": "scale, weighing machine", "779": "school bus", "780": "schooner", "781": "scoreboard", "782": "screen, CRT screen", "783": "screw", "784": "screwdriver", "785": "seat belt, seatbelt", "786": "sewing machine", "787": "shield, buckler", "788": "shoe shop, shoe-shop, shoe store", "789": "shoji", "790": "shopping basket", "791": "shopping cart", "792": "shovel", "793": "shower cap", "794": "shower curtain", "795": "ski", "796": "ski mask", "797": "sleeping bag", "798": "slide rule, slipstick", "799": "sliding door", "800": "slot, one-armed bandit", "801": "snorkel", "802": "snowmobile", "803": "snowplow, snowplough", "804": "soap dispenser", "805": "soccer ball", "806": "sock", "807": "solar dish, solar collector, solar furnace", "808": "sombrero", "809": "soup bowl", "810": "space bar", "811": "space heater", "812": "space shuttle", "813": "spatula", "814": "speedboat", "815": "\"spider web, spiders web\"", "816": "spindle", "817": "sports car, sport car", "818": "spotlight, spot", "819": "stage", "820": "steam locomotive", "821": "steel arch bridge", "822": "steel drum", "823": "stethoscope", "824": "stole", "825": "stone wall", "826": "stopwatch, stop watch", "827": "stove", "828": "strainer", "829": "streetcar, tram, tramcar, trolley, trolley car", "830": "stretcher", "831": "studio couch, day bed", "832": "stupa, tope", "833": "submarine, pigboat, sub, U-boat", "834": "suit, suit of clothes", "835": "sundial", "836": "sunglass", "837": "sunglasses, dark glasses, shades", "838": "sunscreen, sunblock, sun blocker", "839": "suspension bridge", "840": "swab, swob, mop", "841": "sweatshirt", "842": "swimming trunks, bathing trunks", "843": "swing", "844": "switch, electric switch, electrical switch", "845": "syringe", "846": "table lamp", "847": "tank, army tank, armored combat vehicle, armoured combat vehicle", "848": "tape player", "849": "teapot", "850": "teddy, teddy bear", "851": "television, television system", "852": "tennis ball", "853": "thatch, thatched roof", "854": "theater curtain, theatre curtain", "855": "thimble", "856": "thresher, thrasher, threshing machine", "857": "throne", "858": "tile roof", "859": "toaster", "860": "tobacco shop, tobacconist shop, tobacconist", "861": "toilet seat", "862": "torch", "863": "totem pole", "864": "tow truck, tow car, wrecker", "865": "toyshop", "866": "tractor", "867": "trailer truck, tractor trailer, trucking rig, rig, articulated lorry, semi", "868": "tray", "869": "trench coat", "870": "tricycle, trike, velocipede", "871": "trimaran", "872": "tripod", "873": "triumphal arch", "874": "trolleybus, trolley coach, trackless trolley", "875": "trombone", "876": "tub, vat", "877": "turnstile", "878": "typewriter keyboard", "879": "umbrella", "880": "unicycle, monocycle", "881": "upright, upright piano", "882": "vacuum, vacuum cleaner", "883": "vase", "884": "vault", "885": "velvet", "886": "vending machine", "887": "vestment", "888": "viaduct", "889": "violin, fiddle", "890": "volleyball", "891": "waffle iron", "892": "wall clock", "893": "wallet, billfold, notecase, pocketbook", "894": "wardrobe, closet, press", "895": "warplane, military plane", "896": "washbasin, handbasin, washbowl, lavabo, wash-hand basin", "897": "washer, automatic washer, washing machine", "898": "water bottle", "899": "water jug", "900": "water tower", "901": "whiskey jug", "902": "whistle", "903": "wig", "904": "window screen", "905": "window shade", "906": "Windsor tie", "907": "wine bottle", "908": "wing", "909": "wok", "910": "wooden spoon", "911": "wool, woolen, woollen", "912": "worm fence, snake fence, snake-rail fence, Virginia fence", "913": "wreck", "914": "yawl", "915": "yurt", "916": "web site, website, internet site, site", "917": "comic book", "918": "crossword puzzle, crossword", "919": "street sign", "920": "traffic light, traffic signal, stoplight", "921": "book jacket, dust cover, dust jacket, dust wrapper", "922": "menu", "923": "plate", "924": "guacamole", "925": "consomme", "926": "hot pot, hotpot", "927": "trifle", "928": "ice cream, icecream", "929": "ice lolly, lolly, lollipop, popsicle", "930": "French loaf", "931": "bagel, beigel", "932": "pretzel", "933": "cheeseburger", "934": "hotdog, hot dog, red hot", "935": "mashed potato", "936": "head cabbage", "937": "broccoli", "938": "cauliflower", "939": "zucchini, courgette", "940": "spaghetti squash", "941": "acorn squash", "942": "butternut squash", "943": "cucumber, cuke", "944": "artichoke, globe artichoke", "945": "bell pepper", "946": "cardoon", "947": "mushroom", "948": "Granny Smith", "949": "strawberry", "950": "orange", "951": "lemon", "952": "fig", "953": "pineapple, ananas", "954": "banana", "955": "jackfruit, jak, jack", "956": "custard apple", "957": "pomegranate", "958": "hay", "959": "carbonara", "960": "chocolate sauce, chocolate syrup", "961": "dough", "962": "meat loaf, meatloaf", "963": "pizza, pizza pie", "964": "potpie", "965": "burrito", "966": "red wine", "967": "espresso", "968": "cup", "969": "eggnog", "970": "alp", "971": "bubble", "972": "cliff, drop, drop-off", "973": "coral reef", "974": "geyser", "975": "lakeside, lakeshore", "976": "promontory, headland, head, foreland", "977": "sandbar, sand bar", "978": "seashore, coast, seacoast, sea-coast", "979": "valley, vale", "980": "volcano", "981": "ballplayer, baseball player", "982": "groom, bridegroom", "983": "scuba diver", "984": "rapeseed", "985": "daisy", "986": "yellow ladys slipper, yellow lady-slipper, Cypripedium calceolus, Cypripedium parviflorum", "987": "corn", "988": "acorn", "989": "hip, rose hip, rosehip", "990": "buckeye, horse chestnut, conker", "991": "coral fungus", "992": "agaric", "993": "gyromitra", "994": "stinkhorn, carrion fungus", "995": "earthstar", "996": "hen-of-the-woods, hen of the woods, Polyporus frondosus, Grifola frondosa", "997": "bolete", "998": "ear, spike, capitulum", "999": "toilet tissue, toilet paper, bathroom tissue", "1000": "None of the above"}
assets/russian.txt ADDED
@@ -0,0 +1,422 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
+ одной
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
+ хочешь
352
+ четыре
353
+ шестой
354
+ восьмой
355
+ впрочем
356
+ времени
357
+ говорил
358
+ говорит
359
+ девятый
360
+ десятый
361
+ кажется
362
+ конечно
363
+ которая
364
+ которой
365
+ которые
366
+ который
367
+ которых
368
+ наверху
369
+ наконец
370
+ недавно
371
+ немного
372
+ нередко
373
+ никогда
374
+ однажды
375
+ посреди
376
+ сегодня
377
+ седьмой
378
+ сказала
379
+ сказать
380
+ сколько
381
+ слишком
382
+ сначала
383
+ спасибо
384
+ человек
385
+ двадцать
386
+ довольно
387
+ которого
388
+ наиболее
389
+ недалеко
390
+ особенно
391
+ отовсюду
392
+ двадцатый
393
+ миллионов
394
+ несколько
395
+ прекрасно
396
+ процентов
397
+ четвертый
398
+ двенадцать
399
+ непрерывно
400
+ пожалуйста
401
+ пятнадцать
402
+ семнадцать
403
+ тринадцать
404
+ двенадцатый
405
+ одиннадцать
406
+ пятнадцатый
407
+ семнадцатый
408
+ тринадцатый
409
+ шестнадцать
410
+ восемнадцать
411
+ девятнадцать
412
+ одиннадцатый
413
+ четырнадцать
414
+ шестнадцатый
415
+ восемнадцатый
416
+ девятнадцатый
417
+ действительно
418
+ четырнадцатый
419
+ многочисленная
420
+ многочисленное
421
+ многочисленные
422
+ многочисленный
assets/skin.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a126206522807a286a19fe9a71717b181d24829a8db75f5353598594275fbfdf
3
+ size 558430117
assets/skin.py ADDED
@@ -0,0 +1,31 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ import torch
3
+ from torchvision import transforms
4
+ from torchvision.models import VGG19_BN_Weights, vgg19_bn
5
+
6
+ model =torch.load('assets/skin.pth')
7
+ #print(torch.load('assets/weights.pth'))
8
+ # model=vgg19_bn()
9
+ # print(torch.load('assets/model.pth'))
10
+ # model.load_state_dict(torch.load('assets/skin_cancer.pth'))
11
+ # print(model)
12
+ # torch.save(model.state_dict(), 'assets/skin_cancer.pth')
13
+ skin_map={0:'Добро',1:'Зло'}
14
+ def get_evil(img):
15
+
16
+ transform = transforms.Compose([
17
+ transforms.Resize((224, 224)), # Размер, ожидаемый VGG19_bn
18
+ transforms.ToTensor(),
19
+ ])
20
+
21
+ input_image = transform(img).unsqueeze(0) # Добавьте размерность пакета (batch dimension)
22
+
23
+ device = 'cpu'
24
+ #torch.device("cuda" if torch.cuda.is_available() else 'cpu')
25
+ model.to(device)
26
+ model.eval()
27
+ input_image = input_image.to(device)
28
+ #model.to(device)
29
+ with torch.no_grad():
30
+ res=model(input_image).item()
31
+ return f'Степень злобы: {res}\n\n Т.е. опухоль: {skin_map[round(res)]}'
assets//320/226/320/265/320/275/321/217.jpg ADDED