Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16

Минус слова для фраз

20.11.2019, 14:25. Показов 2712. Ответов 24
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть два файла

в первом - набор фраз по максимуму
во втором - набор слов которые не должны встречаться в этих фразах

слова без изменений прям как есть точно есть в фразах
и такие фразы нельзя включать в набор

Как реализовать сортировку?

Python
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
import re
import itertools
import time
 
""" Этим способом можно получить все уникальные фразы из общего набора:
 - собираешь все возможные фразы,
 - загоняешь сюда,
 - получаешь список уникальных фраз 
"""
 
mass = []
file = '/direct_advert/0/all-2.csv'
minus = '/direct_advert/0/all-minus.csv'
 
base = []
with open(file, "r") as f:
    for l in f:
        l = l.replace('+', '').replace(',', ' ').replace('.', ' ').replace('  ', ' ')
        print(l)
        time.sleep(1)
        # for key in l:
            # print(key)
            # if key not in base and len(key) > 3:
                # base.append(key)
 
n = 0
for x in base:
    print(x)
    n += 1
 
print(n)
Сам принцип
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
20.11.2019, 14:25
Ответы с готовыми решениями:

Словарь фраз для бота вк
Здравствуйте, пишу бота. Нужно как-то реализовать словарь фраз и ответов на них. Хотелось бы в отдельном файле. Вообщем суть такова: В...

Оптимизировать алгоритм поиска двух одинаковых фраз, в массиве фраз
Всем привет! Может кто подскажет, как оптимизировать алгоритм поиска 2-х одинаковых фраз, в массиве фраз? В моем алгоритме сравнения,...

Слова, усиливающие важность ключевых слов/фраз
Сегодня меня попросили составить список слов, усиливающих важность ключевых слов/фраз в тексте страницы. :-? Если честно, я была...

24
Эксперт Python
5439 / 3860 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
20.11.2019, 23:23
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от IRIP Посмотреть сообщение
но в нем нет про открытие файла
Как нет? StringIO это аналог open, точнее его имитация (просто мне лень создавать файлы, которые вы сюда не приаттачили).
Что касается очистки файла - это легко делается простой регуляркой re.sub(r"[все что хотим заменить]+","", text) вместо 100500 риплейсов.
1
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
20.11.2019, 23:27  [ТС]
последний код рабочий
проблема была в том, что в минус словах в конце слова в некоторых местах стоял пробел

всем спасибо за помощь
0
Status 418
Эксперт Python
4584 / 2350 / 601
Регистрация: 26.11.2017
Сообщений: 5,262
Записей в блоге: 3
20.11.2019, 23:41
Python
1
2
    words = '\w+' + ws.read().replace('\n','|')
    result = set(filter(lambda text: not re.search(words, text), phrases))
не?
1
 Аватар для IRIP
514 / 146 / 28
Регистрация: 18.04.2015
Сообщений: 1,904
Записей в блоге: 16
21.11.2019, 15:00  [ТС]
eaa, ну наверно, не пробовал =)

я стараюсь максимально код делать понятным (чтоб самому разобраться) =)
0
Особый статус
Эксперт WindowsВирусоборец
8429 / 1708 / 87
Регистрация: 15.04.2011
Сообщений: 5,520
21.11.2019, 16:42
Цитата Сообщение от IRIP Посмотреть сообщение
как его в ваш пример встроить 0_о
Вот, все таки решил вам дописать код))
В нем только не учтен вариант приведения значений строк к нижнему или верхнему регистру, но тут вы просто можете изменить i на i.lower - и все, если нужно.

Сокращать сильно код не стал, что бы не утратить читаемость, короткий код не всегда благо, а так уместить можно строки в 3 или 5 я думаю

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import re
file = r'F:агрузки\1.txt'
file2 = r'F:агрузки\2.txt'
 
def result(*kwargz) ->'set':
    '''
        Функция принимает 2 множества и возвращет 1
        за вычетом пересекающихся значений
    '''
    kwargz[0].difference_update(kwargz[1])
    return kwargz[0]
 
with open(file, 'r') as f, open(file2, 'r') as f2:
    #Чтение файлов в множества
    tmp = set([re.sub(r'\W', ' ', i) for i in f.read().splitlines()])
    tmp2 = set([re.sub(r'\W', ' ', i) for i in f2.read().splitlines()])
 
#Возвращаем результат функции
print(result(tmp,tmp2))
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
21.11.2019, 16:42

Минус слова в пересекающихся объявлениях
Нужно ли задавать в минус слова одно и то же слово, но в разных склонениях? Например, 2 варианта ключевиков: 1. Создание сайтов 2....

Удаление строк макросом содержащие минус слова
Здравствуйте! Как можно изменить скрипт, чтобы он осуществлял удаление сразу на нескольких столбцах, а не как в моём случае, только столбце...

Доработка макроса по удалению строк содержащие минус слова
Ребят, привет. Ниже приведенный макрос удаляет строки в "Лист1" в выбранном столбце, если присутствуют слова из "Лист2". ...

Неточное совпадение фраз для бота
я делаю мини чат помошника но я же немогу прописывать каждую фразу а вдруг пользователь напишет не привет а приветь бот нечего не ответит...

Минус на минус не даёт плюс
Правило школьной алгебры: минус на минус даёт плюс. Если принять во внимание, что знаком "минус" обозначают арифметическую...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
25
Ответ Создать тему
Новые блоги и статьи
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru