Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/22: Рейтинг темы: голосов - 22, средняя оценка - 4.82
43 / 7 / 0
Регистрация: 27.11.2013
Сообщений: 96

Как оптимально посчитать количество биграмм в тексте, исключив некоторые?

03.12.2013, 01:51. Показов 4726. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Есть код считающий кол-во биграмм в тексте 1, но которых нет в текстах 2, 3, 4

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
32
33
34
35
36
37
38
39
40
41
42
43
import codecs
from nltk import bigrams
 
def gen_Bigram(text):
        f = codecs.open(text,'r','utf8').read()
        tokens = f.split()
        mn_bigram = bigrams(tokens)
        return mn_bigram
 
def collect():
        arr = []
        for a in gen_Bigram('2.txt'):
                aN = (' '.join(a))
                arr.append(aN)
        for s in gen_Bigram('3.txt'):
                sN = (' '.join(s))
                arr.append(sN)
        for d in gen_Bigram('4.txt'):
                dN = (' '.join(d))
                arr.append(dN)
        words = set(arr)
        return words
                
 
 
def out_write():
        fOut = codecs.open('out.txt', 'w', 'utf-8')        
        dic = {}
        for ml in gen_Bigram('1.txt'):
                mlF = (' '.join(ml))
                if mlF not in collect():
                        if mlF in dic:
                                dic[mlF] += 1
                        else:
                                dic[mlF] = 1
    
        
        for z in dic:
            fOut.write(z + '#' + str(dic[z]))
            fOut.write('\r\n')
        fOut.close()
                        
out_write()

Он работает крайне медленно (если вообще работает, потому что после условия
Python
1
if mlF not in collect():
если ставлю обычную запись, ее наблюдаю. А запись частотного списка не вижу)

Помогите сделать его побыстрее

Заранее спасибо

P.s. За реализацию больно не бить, был нацелен на результат любой ценой
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
03.12.2013, 01:51
Ответы с готовыми решениями:

Посчитать процентное соотношение (или количество) каждой буквы алфавита и биграмм
Дан текст 5Мб. надо написать программу на с++, посчитать процентное соотношение(или количество) каждой буквы алфавита и биграмм. Подскажите...

Как вывести все имена файлов, исключив некоторые?
Народ, кто подскажет, как выбрать в bash все файлы в каталоге, удовлетворяющие условию, кроме "вот этого именно" файла? ...

Как посчитать количество символов в тексте?
<p id="text">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Vel minima libero pariatur magnam porro provident aperiam autem...

2
38 / 38 / 10
Регистрация: 04.02.2013
Сообщений: 106
03.12.2013, 04:20
А почему бы не сделать через множества? Ну, в смысле - сохранить биграмы из разных файлов в разные множества (s1, s2, s3, s4), а потом получить новое множество:
Python
1
s0 = s1-s2-s3-s4
Оно ведь, по идее и должно содержать все те биграммы, которые есть в первом мн-ве, но которых нет в остальных.
1
43 / 7 / 0
Регистрация: 27.11.2013
Сообщений: 96
03.12.2013, 09:20  [ТС]
хм, точно. Сейчас попробую

Добавлено через 21 минуту
всё круто, спасибо большое!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.12.2013, 09:20
Помогаю со студенческими работами здесь

Как посчитать количество слов в тексте
Как посчитать количество слов, символов и пробелов в тексте ? вот код... /* * Created by SharpDevelop. * User: Admin *...

Как посчитать количество слов в тексте?
Вот вопрос - есть текст с пробелами, запятыми, многоточиями, дефисами и тире. Как посчитать количество слов в тексте?

Как мне посчитать количество букв в тексте
У меня есть стринг мне надо узнать количество букв а, б, в и тд. Какой функцией можно это зделать? Спосибо! P.S. Есть ли гдето...

Как посчитать количество одинаковых слов в тексте?
Пример того, как должна работать программа ***************************************************************************** Введите текст:...

Как можно посчитать количество определенных слов в тексте?
Каким образом это можно сделать? И, если знаете, посоветуйте книги по python Посчитать количество определенных слов в тексте Входные...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru