fbpx

прошу помощи — нужно написать пару прог на питоне для универа (ну не мой это проф, а сдать нужно)

743 просмотраtf/idf
0
1 Комментарий

1) Посчитать tf/idf для термина всех новостей ленты ру за день
2) найти все вводные слова и выражения в тексте


Alex добавил комментарий

вознаграждение за написание вышеуказанных прог гарантирую

Добавить комментарий

1 Ответы

Python Опубликовано 20.05.2019
0
Сергей (анонимный) 0 Comments

import re
 # лист для сообщений.
sourcelist = []
 # лист для слов и его словоформ
needword = []
# лист для союзов, предлогов итп
preposition = []
clearlist = []
 for sentence in sourcelist:
    sentence = re.sub(u'[^\w\s]+', '', sentence)
    clearlist.append({
        'sentence': [
            word.lower() for word in sentence.split(' ') if
            word and word not in preposition
        ]
    })
 totalsentences = len(clearlist)
wordinsentence = 0
 for i, d in enumerate(clearlist):
    clearlist[i]['entry'] = sum(el in needword for el in d['sentence'])
    if clearlist[i]['entry']:
        wordinsentence += 1
    clearlist[i]['TF'] = clearlist[i]['entry'] / len(d['sentence'])
 DF = wordinsentence / totalsentences
IDF = 1 / DF
 finallist = [{
    'TF': sentence['TF'],
    'IDF': IDF,
    'TF*IDF': sentence['TF'] * IDF
} for sentence in clearlist]

вот набросал побыстрому
в итоге в finallist будет нечто
{'TF': 0.07142857142857142, 'IDF': 1.6666666666666667, 'TF*IDF': 0.11904761904761904}
{'TF': 0.1111111111111111, 'IDF': 1.6666666666666667, 'TF*IDF': 0.18518518518518517}
{'TF': 0.0, 'IDF': 1.6666666666666667, 'TF*IDF': 0.0}
{'TF': 0.0, 'IDF': 1.6666666666666667, 'TF*IDF': 0.0}
{'TF': 0.3076923076923077, 'IDF': 1.6666666666666667, 'TF*IDF': 0.5128205128205129}
Добавить комментарий
Напишите свой ответ на данный вопрос.
Scroll Up