Сокращенные слова в строке для соответствия максимальной длине [закрыто]

alexandernst спросил: 13 июня 2018 в 03:27 в: python

У меня есть вектор строк (фразы с несколькими словами). По причинам, выходящим за рамки этого вопроса, мне нужно выполнить предел длины из N символов в строку.

Самое первое, что я подумал, - объединить каждую строку, но, к сожалению, результат операции будет стоять перед конечным пользователем (конечным пользователям придется читать усеченные строки и смысл из них).

Это означает, что я не могу просто нарезать строки, потому что если бы я сделал следующее:

This is a simple test with FOO
This is a simple test with BAR

будет преобразован в

This is a simple te...
This is a simple te...

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

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

При таком поведении предыдущий пример будет преобразован в

This is a sim. te. with FOO
This is a sim. te. with BAR

Я figu red out Я попрошу здесь альтернативное / лучшее решение, прежде чем кодировать это. Также, если нет лучшей альтернативы, что я должен иметь в виду при реализации этого? Можете ли вы дать мне какие-нибудь советы?


2 ответа

KiteCoder ответил: 13 июня 2018 в 10:37

У меня есть несколько мыслей ... которые могут или не могут удовлетворить ваши потребности. Чтобы начать, вот несколько дополнительных форм аббревиатуры, которые вы можете программно реализовать.

Удалить гласные

Если вы удалите гласные, вы можете быть способный сокращать слова в пределах желаемой длины и быть немного читабельнее. Удаление гласных является приемлемой формой аббревиатуры. Имейте в виду, вам нужно будет сохранить первую и последнюю букву слова, даже если они являются гласными. organization = orgnztn

Использовать аббревиатуру API

https://Abbreviations.com имеет API с сокращениями. Это может быть полезно для сокращения более длинных слов. Например, чтобы найти аббревиатуру "организация": https://www.abbreviations.com/abbreviation/organization аббревиатура ORG

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

John Luscombe ответил: 13 июня 2018 в 09:48

К сожалению, независимо от того, где вы усекаете данные, есть вероятность, что две строки будут выглядеть одинаково для конечного пользователя. Вы можете провести сравнение строк, чтобы определить, где находятся различия, а затем написать некоторую логику для обрезания символов в других местах.

Дополнительное видео по вопросу: Сокращенные слова в строке для соответствия максимальной длине [закрыто]

Python Tutorial for Beginners 2: Strings - Working with Textual Data

Python For Beginners - Convert a String to Integer - Lesson 5 With Examples

BUILT-IN STRING FUNCTIONS - PYTHON PROGRAMMING