exponenta event banner

erasePunctuation

Удаление знаков препинания из текста и документов

Описание

пример

newStr = erasePunctuation(str) стирает знаки препинания и символы из элементов str. Функция удаляет символы, принадлежащие классам знаков препинания или символов Юникода.

пример

newDocuments = erasePunctuation(documents) стирает знаки препинания и символы из documents. Если слово пусто после удаления знаков препинания и символов, функция удаляет его. Для ввода маркированного документа функция удаляет знаки препинания из маркеров с типом 'punctuation' и 'other'. Например, функция не удаляет знаки препинания и символы из URL-адресов и адресов электронной почты.

пример

newDocuments = erasePunctuation(documents,'TokenTypes',types) удаляет знаки препинания и символы только из указанных типов маркеров.

Примеры

свернуть все

Удаление пунктуации из текста в str.

str = "it's one and/or two.";
newStr = erasePunctuation(str)
newStr = 
"its one andor two"

Вставка помещения в "/" символ является, сначала используйте replace функция.

newStr = replace(str,"/"," ")
newStr = 
"it's one and or two."
newStr = erasePunctuation(newStr)
newStr = 
"its one and or two"

Удалите пунктуацию из массива документов.

documents = tokenizedDocument([ ...
    "An example of a short sentence." 
    "Another example... with a URL: https://www.mathworks.com"])
documents = 
  2x1 tokenizedDocument:

     7 tokens: An example of a short sentence .
    10 tokens: Another example . . . with a URL : https://www.mathworks.com

newDocuments = erasePunctuation(documents)
newDocuments = 
  2x1 tokenizedDocument:

    6 tokens: An example of a short sentence
    6 tokens: Another example with a URL https://www.mathworks.com

Здесь функция не стирает символы препинания из URL.

Входные аргументы

свернуть все

Входной текст, заданный как строковый массив, символьный вектор или массив ячеек символьных векторов.

Пример: ["An example of a short sentence."; "A second short sentence."]

Типы данных: string | char | cell

Исходные документы, указанные как tokenizedDocument массив.

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

tokenizedDocument и addTypeDetails функции автоматически обнаруживают следующие типы маркеров:

  • 'letters' - строка только буквенных символов

  • 'digits' - только строка цифр

  • 'punctuation' - строка только знаков препинания и символов

  • 'email-address' - обнаруженный адрес электронной почты

  • 'web-address' - обнаруженный веб-адрес

  • 'hashtag' - обнаруженный хэштег (начинается с "#" символ, за которым следует буква)

  • 'at-mention' - обнаружено при упоминании (начинается с "@" символ)

  • 'emoticon' - обнаруженный смайлик

  • 'emoji' - обнаруженные эмодзи

  • 'other' - не относится к предыдущим типам и не является пользовательским типом

Чтобы указать собственные пользовательские типы токенов при маркировании, используйте 'CustomTokens' или 'RegularExpressions' опции в tokenizedDocument. Если тип пользовательского маркера не указан, программа устанавливает соответствующий тип маркера на 'custom'.

Типы данных: string | char | cell

Выходные аргументы

свернуть все

Выходной текст, возвращаемый в виде строкового массива, символьного вектора или массива ячеек символьных векторов. str и newStr имеют один и тот же тип данных.

Выходные документы, возвращенные как tokenizedDocument массив.

Подробнее

свернуть все

Категории символов Юникода

Каждому символу Юникода назначается категория. Следующая таблица суммирует категории знаков препинания и символов в Юникоде и содержит пример символа из каждой категории:

КатегорияКод категорииКоличество символовПример символа
Пунктуация, соединитель[Пк]10_
Пунктуация, тире[Пд]24-
Пунктуация, Закрыть[Pe]73)
Пунктуация, окончательная цитата[Pf]10
Пунктуация, начальная цитата[Пи]12
Пунктуация, прочее[Заказ на поставку]566!
Пунктуация, Открыто[Ps]75(
Символ, валюта[Sc]54$
Символ, модификатор[Sk]121^
Символ, математика[См]948+
Символ, прочее[Итак]5855¦

Для получения дополнительной информации см. [1].

Совет

  • Для ввода строки, erasePunctuation удаляет знаки препинания из URL-адресов и HTML-тегов. Такое поведение может препятствовать выполнению функций eraseTags, eraseURLs, и decodeHTMLEntities от работы, как и ожидалось. Если необходимо использовать эти функции для предварительной обработки текста, используйте эти функции перед использованием erasePunctuation.

Вопросы совместимости

развернуть все

В R2018b изменилось поведение

Ссылки

[1] Категории символов Юникода. https://www.fileformat.info/info/unicode/category/index.htm

Представлен в R2017b