Вопрос к SEO специалистам: "Что бы вы написали в ТЗ программисту для упрощения своей работы?"

T7
На сайте с 19.09.2018
Offline
63
#81
ArbNet #:
Вот я и продумываю методику

Важно задачу поставить. 

ArbNet #:
Движок анализирует текст, определяет тематику*

Методика в т.ч. нужна и для определяет тематику

ArbNet #:
Для определения тематики хочу составлять списки ключевых слов

Как? Вручную? Трудоемко. Автоматизированно? Тут изобретение колеса достаточно сложно. Просто тут не велосипед😂

Но есть инструменты - gensim пиарю в этой теме давно. Только, на питон надо пересесть🤔

Starts at 1599078247.3997316
{'checksum': '68799af40b6bda07dfa47a32612e5364',
'description': 'First 100,000,000 bytes of plain text from Wikipedia. Used '
                'for testing purposes; see wiki-english-* for proper full '
                'Wikipedia datasets.',
'file_name': 'text8.gz',
'file_size': 33182058,
'license': 'not found',
'num_records': 1701,
'parts': 1,
'read_more': ['http://mattmahoney.net/dc/textdata.html'],
'reader_code': 'https://github.com/RaRe-Technologies/gensim-data/releases/download/text8/__init__.py',
'record_format': 'list of str (tokens)'}
Corpus len 1701 1701
abacus 0.006704047545684609
abilities 0.0030255603220721273
ability 0.003156168449586299
able 0.0036673470201144674
abnormal 0.004575122435127926
abolished 0.0028052608258295926
abolition 0.004064820137019515
about 0.00014963587508918375
above 0.0007492665180478759
absence 0.004142807322609117
End at 1599078297.5991597 (50.19942808151245 sec)

чуть допиленный скрипт из оф. документации, показывает Tfidf 10 слов из первых 100,000,000 bytes of plain text from Wikipedia.

# -*- coding: utf-8 -*-

from time import time
import gensim.downloader as api
from gensim.models import TfidfModel
from gensim.corpora import Dictionary
from pprint import pprint

t0 = time()
print('Starts at %s' % t0)
pprint(api.info("text8"))
dataset = api.load("text8")
dct = Dictionary(dataset)  # fit dictionary
corpus = [dct.doc2bow(line) for line in dataset]  # convert corpus to BoW format
print('Corpus len %s %s' % (len(corpus), dct.num_docs) )
model = TfidfModel(corpus)  # fit model
vector = model[corpus[0]]  # apply model to the first corpus document
for doc in vector[:10]:
    id = doc[0]
    print(dct[id], doc[1])
t = time()
print('End at %s (%s sec)' % (t, (t-t0)) )

Или посложней - файлик прикреплен из него, используя

# -*- coding: utf-8 -*-

from gensim.models.word2vec import Word2Vec
from os.path import dirname, join as pj, abspath
import sys

BASE_PATH = dirname(dirname(abspath(__file__)))
sys.path.append(BASE_PATH)
from lemm import lemm

stopwords = []
with open(pj(BASE_PATH, 'data', 'stopwords')) as f:
  for tok in f:
    tok = tok.strip()
    if tok not in stopwords:
      stopwords.append( tok.strip() )

_lemm = lemm(stopwords)

with open(pj(BASE_PATH, 'data', 'text')) as f:
    data = f.read()
data = data.split("\n")
data = [ _lemm.normal_form(d) for d in data if d.strip() ]
print(data)
model = Word2Vec(data, min_count = 0, workers=2)
vector = model.wv['яндекс']
result = model.wv.similar_by_word('яндекс')
print("\n similar_by_word яндекс", result)

result = model.wv.similar_by_word('система')
print("\n similar_by_word система", result)

exit()

получаем список схожих с яндекс и система слов


similar_by_word яндекс [('google', 0.9942089319229126), ('компания', 0.9934411644935608), ('сайт', 0.9913094639778137), ('поиск', 0.9903950691223145), ('англ', 0.989749550819397), ('запрос', 0.9888874888420105), ('выдача', 0.9886837005615234), ('поисковый', 0.9885455369949341), ('the', 0.9878780841827393), ('информация', 0.9869726896286011)]

similar_by_word система [('яндекс', 0.984493613243103), ('поиск', 0.9841199517250061), ('google', 0.9831591248512268), ('компания', 0.9825421571731567), ('сайт', 0.9824696779251099), ('запрос', 0.9824256896972656), ('поисковый', 0.9822441935539246), ('выдача', 0.9817354679107666), ('страница', 0.981270432472229),
txt text.txt
ArbNet
На сайте с 27.10.2019
Offline
146
#82

timo-71, Вы всё усложняете 😀 пайтон не обязателен и делается всё гораздо проще. 

Подбор ключевых слов я сделал. Теперь мне архитектуру сущностей и поиск по запросу осталось сделать.

T7
На сайте с 19.09.2018
Offline
63
#83
ArbNet #:

timo-71, Вы всё усложняете 😀 пайтон не обязателен и делается всё гораздо проще. 

Подбор ключевых слов я сделал. Теперь мне архитектуру сущностей и поиск по запросу осталось сделать.

Ну, как угодно. И нормализацию делаете?

ArbNet #:
делается всё гораздо проще. 

Куда уж проще то. Несколько, ну хорошо десятков, строк кода для получения моделей по признанным в мире алгоритмам распознавания и извлечения тематик из набора документов.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий