Перейти к содержимому

Как посчитать количество предложений в тексте python

  • автор:

Подсчет слов в строке в Python

Подсчет слов в строке в Python

Из этого туториала Вы узнаете, как считать слова в строковом Python.

Используйте методы split() и len() для подсчета слов в строке Python

  • separator (необязательно) — действует как разделитель (например, запятые, точка с запятой, кавычки или косая черта). Задает границу, на которой нужно разделить строку. По умолчанию разделителем является любой пробел (пробел, новая строка, табуляция и т. Д.), Если separator не указан.
  • maxsplit (необязательно) — определяет максимальное количество разделений. Значение по умолчанию maxsplit , если не определено, равно -1 , что означает, что он не имеет ограничений и разбивает строку на несколько частей.

len () также является встроенным методом Python, который возвращает количество строк в массиве или подсчитывает длину элементов в объекте. Этот метод принимает только один параметр: строку, байты, список, объект, набор или коллекцию. Он вызовет исключение TypeError, если аргумент отсутствует или недействителен.

Посмотрим, как методы split() и len() подсчитывают количество слов в строке.

Пример 1: без параметров

Пример 2: С параметром separator

Please enable JavaScript

Метод split() вернет новый список строк, а len() считает строку внутри списка.

Пример 3: С параметрами separator и maxsplit

maxsplit разделяет только первые три запятые в bucket_list . Если вы установите maxsplit , в списке будет элемент maxsplit+1 .

Метод split() разбивает большие строки на более мелкие. Следовательно, подсчет слов в массиве строк будет основан не на словах, а на том, как определен разделитель.

Используйте модуль RegEx для подсчета слов в строке Python

Регулярное выражение, сокращенно regex или regexp , — очень мощный инструмент для поиска и управления текстовыми строками; это можно использовать для предварительной обработки данных, проверки, поиска шаблона в текстовой строке и т. д. Regex также может помочь в подсчете слов в текстовой строке в сценариях, где есть знаки препинания или специальные символы, которые не нужны. Regex — это встроенный в Python пакет, поэтому нам просто нужно импортировать пакет re , чтобы начать его использовать.

Используйте методы sum() , strip() и split() для подсчета слов в строке Python

Этот подход считает слова без использования регулярного выражения. sum() , strip() и split() — все это встроенные методы в Python. Мы кратко обсудим каждый метод и его функции.

Метод sum() складывает элементы слева направо и возвращает сумму. Метод принимает два параметра:

  • iterable (обязательно) — строка, список, кортеж и т. Д. Для суммирования. Это должны быть числа.
  • start (необязательно) — число, добавляемое к сумме или возвращаемому значению метода.
  • chars (необязательно) — указывает строку, которую нужно удалить из левой и правой частей текста.

Наконец, метод split() уже обсуждался до этого подхода.

Теперь давайте используем эти методы вместе для подсчета слов в строке. Во-первых, нам нужно импортировать строку , встроенный модуль Python, прежде чем использовать его функции.

Используйте метод count() для подсчета слов в Python String Python

  • substring (обязательно) — ключевое слово для поиска в строке
  • start (опция) — указатель начала поиска
  • stop (опция) — указатель того, где заканчивается поиск

Примечание. В Python индекс начинается с 0 .

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

В этом методе не имеет значения, является ли подстрока целым словом, фразой, буквой или любой комбинацией символов или цифр.

Таким образом, вы можете выбрать любой из этих подходов в зависимости от вашего варианта использования. Для слов, разделенных пробелами, мы можем использовать простой подход: функции split() или len() . Для фильтрации текстовых строк для подсчета слов без специальных символов используйте модуль regex . Создайте шаблон, в котором подсчитываются слова, не содержащие определенных символов. Без использования regex используйте альтернативу, которая представляет собой комбинацию методов sum() + strip() + split() . Наконец, метод count() также может использоваться для подсчета конкретного слова, найденного в строке.

Подсчитать количество предложений в тексте с помощью Python? [Дубликат]

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null .

9 ответов

Попробуйте это. разделите свою строку this.You также можете проверить демо.

Наивный подход для правильных английских предложений, не начинающийся с неалфаза и не содержащий цитируемых частей речи:

Ложное положительное расщепление может быть уменьшено путем расширения NonEndings немного. В других случаях потребуется дополнительный код. [1]

Вы никогда не достигнете совершенства при таком подходе. Но в зависимости от задачи он может просто работать «достаточно» .

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

Я написал это с учетом комментариев smci выше. Это подход среднего класса, который не требует внешних библиотек и не использует регулярное выражение. Это позволяет вам предоставлять список сокращений и счетов для предложений, заканчивающихся терминаторами в оболочках, таких как период и цитата: [. «,? ‘..]].

Я использовал Karl’s find_all из этой записи: Найти все вхождения подстроки в Python

Если вы хотите разбить предложения на 3 периода (не уверен, что это то, что вы хотите), вы можете использовать это регулярное выражение:

Первый блок: (?<!\w\.\w.) : этот шаблон ищет в цикле отрицательной обратной связи (?<!) для всех слов (\w) , за которым следует полный запуск (\.) , за которым следуют другие слова (\.)

Второй блок: (?<![A-Z][a-z]\.) : этот шаблон выполняет поиск в цикле отрицательной обратной связи для чего-либо, начиная с букв верхнего регистра ([A-Z]) , а затем строчных алфавитов ([a-z]) пока не будет найдена точка (\.) .

Третий блок: (?<=\.|\?) : этот шаблон ищет в контуре обратной связи точки (\.) ИЛИ вопросительный знак (\?)

Четвертый блок : (\s|[A-Z].*) : эта модель выполняет поиск после точки или вопросительного знака из третьего блока. Он ищет пустое пространство (\s) ИЛИ любую последовательность символов, начиная с алфавита верхнего регистра ([A-Z].*) . Этот блок очень важен для разделения, если вход такой как

Hello world.Hi Я здесь сегодня.

i.e. если после точки есть пробел или пробел.

Я не очень хорош в регулярных выражениях, но более простая версия «грубая сила» на самом деле выше

, что означает, что допустимые единицы запуска: «[AZ] или« [AZ ] Обратите внимание, что большинство регулярных выражений жадные, поэтому порядок очень важен, когда мы делаем (или). Вот почему я написал, то есть регулярное выражение, а затем пришло таких форм, как Inc.

Хорошо, так что предложения-токенизаторы — это то, на что я смотрел в деталях, используя регулярные выражения, nltk, CoreNLP. Вы в конечном итоге пишете свои собственные, и это зависит от приложения. Этот материал сложный и ценный, и люди не просто отдают свой код токенизатора. (В конечном счете, токенизация не является детерминированной процедурой, она вероятностна и также очень сильно зависит от вашего корпуса или домена, например, сообщения в социальных сетях против обзоров Yelp vs. . )

В общем, вы не можете полагайтесь на одно непогрешимое регулярное выражение Great White, вам нужно написать функцию, которая использует несколько регулярных выражений (как положительных, так и отрицательных); также словарь аббревиатур и некоторый базовый язык, который знает, что, например, «Я», «США», «FCC», «TARP» капитализируются на английском языке.

Чтобы проиллюстрировать, насколько легко это может серьезно осложниться, попробуем написать вам эту функциональную спецификацию для детерминированного токенизатора просто решить, будет ли один или несколько периодов (‘.’ / ‘. ‘) обозначать конец предложения или что-то еще:

function isEndOfSentence(leftContext, rightContext)

  1. Возврат Ложно для десятичных знаков внутри чисел или валюты, например 1.23, $ 1.23: «Это просто мои $ .02» . Рассмотрим также ссылки на разделы, такие как 1.2.3 или европейские форматы даты, например 09.07.2014
  2. Возврат False (и не tokenize на отдельные буквы) для известных сокращений, например «Запасы США падают»; для этого требуется словарь известных сокращений. Все, что за пределами этого словаря вы ошибетесь.
  3. Эллипсы «. » в конце предложений являются терминальными, но в середине предложений нет. Это не так просто, как вы могли бы подумать: вам нужно взглянуть на левый контекст и правильный контекст, в частности, заглавный RHS и снова рассмотреть заглавные слова типа «я» и аббревиатуры. Вот пример доказательства двусмысленности, который: Она попросила меня остаться . Я ушел через час. (Было ли это одно предложение или два? Невозможно определить)
  4. Вы также можете хотите написать несколько шаблонов, чтобы обнаруживать и отклонять разные варианты прерывания, отличные от предложения: символика, искусство ASCII, эллипсы на расстоянии. , , и другие вещи esp. Twitter. (Сделать эту адаптивность еще сложнее). Как узнать, является ли @midnight пользователем Twitter, показателем в Comedy Central или просто пунктуацией нежелательной / нежелательной / опечатки? Серьезно нетривиально.
  5. После того, как вы справитесь со всеми этими отрицательными случаями, вы можете произвольно сказать, что любой изолированный период, за которым следуют пробелы, скорее всего, будет окончанием предложения. (В конечном счете, если вы действительно хотите приобрести дополнительную точность, вы в конечном итоге пишете свой собственный вероятностный фреймворк предложения, который использует веса и обучает его конкретному корпусу (например, юридические тексты, широковещательные СМИ, StackOverflow, Twitter, комментарии к форуму и т. Д.), ) Затем вам нужно вручную просмотреть образцы и ошибки обучения. См. Книгу Маннинга и Джурафского или курс Курсера [a]. В конечном итоге вы получаете столько же корректности, сколько готовы заплатить.
  6. . Все вышеизложенное четко относится к англоязычным / аббревиатурам, форматам US number / time / date. Если вы хотите сделать это независимым от страны и языка, это более важное предложение, вам понадобятся корпорация, люди, говорящие на родном языке, для маркировки и QA, и т. Д.
  7. Все вышеизложенное остается только ASCII. Разрешить ввод Unicode, и все становится еще сложнее (и набор тренировок обязательно должен быть либо намного большим, либо намного реже)

В простом (детерминированном) случае function isEndOfSentence(leftContext, rightContext) возвращает boolean, но в более общем смысле это вероятностно: он возвращает float (уровень уверенности, что этот конкретный «.» — конец предложения).

определение количества предложений, слов и букв в текстовом файле

Одна из моих программ на python — найти количество предложений, слов и букв текстового файла и распечатать его на экране. Я немного озадачен тем, как я это делаю. У меня есть идея, как получить слова, но я не уверен, как заставить программу заметить, сколько предложений и букв в текстовом файле. как мне получить вывод на печать на экран, чтобы я мог видеть, правильно ли я делаю корректировки. ниже текстовый файл, который я предполагаю пройти через программу.

Я выяснил, как распечатать его на экране, что мне сейчас нужно, так это то, как мне сделать так, чтобы он мог определить, что такое предложение и как его посчитать. Мне также нужно выяснить, как считать символы, но без учета пробелов только буквы.

Подсчет количества слов(вхождений) и символов в текстовом файле в Python

Вы можете подсчитать количество слов в текстовом файле в Python, выполнив последовательность шагов, которые мы обсудим в этом руководстве.

  1. Откройте файл в режиме чтения и обработайте его в текстовом режиме.
  2. Прочтите текст с помощью функции read().
  3. Разделите текст, используя разделитель пробелов. Мы предполагаем, что слова в предложении разделены пробелом.
  4. Длина разделенного списка должна равняться количеству слов в текстовом файле.
  5. Вы можете уточнить счет, очистив строку перед разделением или проверив слова после разделения.

Пример 1

В этом примере в Python мы прочитаем текстовый файл и посчитаем количество слов в нем. Рассмотрим следующий текстовый файл.

Пример 2: с несколькими строками

В этом примере мы прочитаем текстовый файл с несколькими строками и посчитаем количество слов в нем. Рассмотрим следующий текстовый файл.

Символ новой строки разделяет строки в текстовом файле. Новая строка – это пробел, и когда мы разделяем все данные в текстовом файле с помощью метода split(), все слова во всех предложениях разбиваются и возвращаются в виде единого списка.

Подсчет количества символов в текстовом файле

  1. Откройте файл в режиме чтения.
  2. Прочтите текст с помощью функции read().
  3. Получите длину строки, которая должна быть количеством символов в текстовом файле.
  4. Вы можете уточнить счет, очистив строку, например удалив пробелы и знаки препинания.

Пример подсчета

Рассмотрим следующий текстовый файл.

Пример 2: без учета пробелов

В этом примере мы прочитаем сам файл и подсчитаем количество символов в нем, исключая символы пробела. Рассмотрим следующий текстовый файл.

Чтобы подсчитать количество вхождений определенного слова в текстовый файл, прочтите содержимое текстового файла в строку и используйте функцию String.count() со словом, переданным в качестве аргумента.

Синтаксис

Ниже приводится синтаксис функции count():

Где, word – это строка, а count() возвращает количество вхождений слова в эту строку.

Пример count()

В этом примере мы рассмотрим следующий текстовый файл и посчитаем количество вхождений слова «python».

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *