Удобочитаемость Flesch-Kincaid: Улучшите функцию PHP

оценка является не всегда злом. Существуют времена, где это является совершенно соответствующим.

Однако оценка в настоящее время и исторически в широком масштабе злоупотребляется людьми, которые не знают то, что они делают. Это включает людей, пишущих учебные руководства JavaScript, к сожалению, и в некоторых случаях это может действительно иметь последствия безопасности - или, чаще, простые ошибки. Так, чем больше мы можем сделать для броска вопросительного знака по оценке, тем лучше. Любое время Вы используете оценку, Вам нужно к проверке работоспособности, что Вы делаете, потому что возможности - Вы, могло делать его лучший, более безопасный, более чистый путь.

, Чтобы дать слишком типичный пример, выбрать цвет элемента с идентификатором, сохраненным в переменном 'картофеле':

eval('document.' + potato + '.style.color = "red"');

, Если авторы вида кода выше подсказка об основах того, как JavaScript возражает работе, они поймут, что квадратные скобки могут использоваться вместо литеральных точечных имен, устраняя потребность в оценке:

document[potato].style.color = 'red';

..., который намного легче считать, а также менее потенциально ошибочный.

(Но тогда, кто-то, который/really/знал то, что они делали, скажет:

document.getElementById(potato).style.color = 'red';

, который более надежен, чем изворотливый старый прием доступа к элементам DOM прямо из объекта документа.)

7
задан AakashM 24 February 2012 в 17:00
поделиться

3 ответа

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

  1. Что такое предложение?

    Серьезно, что такое предложение? У нас есть точки, но они также могут использоваться для докторской степени, например, YMCA, и других целей, не связанных с окончанием предложения. Когда вы думаете о восклицательных знаках, вопросительных знаках и многоточиях, вы оказываете себе медвежью услугу, предполагая, что точка поможет. Я уже рассматривал эту проблему раньше, и если вы действительно хотите более надежное подсчет предложений в реальном тексте, вам нужно будет проанализировать текст. Это может потребовать больших вычислительных ресурсов, времени и трудностей с поиском бесплатных ресурсов. В конце концов, вам все равно придется беспокоиться об уровне ошибок в конкретной реализации парсера. Однако только полный синтаксический анализ скажет вам, что такое предложение, а что просто точка в других случаях. Кроме того, если вы используете текст «в дикой природе» - например, HTML - вам также придется беспокоиться о предложениях, заканчивающихся не пунктуацией, а окончанием тегов. Например, на многих сайтах знаки препинания не добавляются к тегам h1 и h2, но это явно разные предложения или фразы.

  2. Слоги - это не то, к чему мы должны приближаться.

    Это основная отличительная черта этой эвристики удобочитаемости , и это делает его наиболее сложным для реализации. Вычислительный анализ подсчета слогов в произведении требует предположения, что предполагаемый читатель говорит на том же диалекте, что и ваш генератор подсчета слогов, на котором обучается. То, как звуки падают вокруг слога, на самом деле является основной частью того, что делает акценты акцентами. Если вы мне не верите, попробуйте как-нибудь съездить на Ямайку. Это означает, что даже если бы человек производил вычисления вручную, это все равно была бы оценка, зависящая от диалекта.

  3. Что такое слово?

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

Итак, в конце концов, я могу ответить на ваш вопрос: «Будет ли это работать?». Если вы хотите взять фрагмент текста и отобразить этот показатель читабельности среди других показателей, чтобы предложить какую-то мыслимую добавленную стоимость, проницательный пользователь не задаст все эти вопросы. Если вы пытаетесь сделать что-то научное или даже что-то педагогическое (как эта партитура и подобные ей в конечном итоге предназначались), я бы особо не беспокоился. На самом деле, если вы собираетесь использовать это, чтобы делать какие-либо предложения пользователю по поводу контента, который они сгенерировали, я бы очень колебался.

Лучшим способом измерения сложности чтения текста, скорее всего, будет что-то, связанное с отношением низкочастотных слов к высокочастотным, а также с количеством hapax legomen в тексте. Но я бы не стал придумывать подобную эвристику, потому что было бы очень сложно эмпирически проверить что-либо подобное.

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

Лучшим способом измерения сложности чтения текста, скорее всего, будет то, что нужно делайте с отношением низкочастотных слов к высокочастотным, а также с количеством hapax legomen в тексте. Но я бы не стал придумывать подобную эвристику, потому что было бы очень сложно эмпирически проверить что-либо подобное.

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

Лучшим способом измерения сложности чтения текста, скорее всего, будет то, что нужно делайте с отношением низкочастотных слов к высокочастотным, а также с количеством hapax legomen в тексте. Но я бы не стал придумывать подобную эвристику, потому что было бы очень сложно эмпирически проверить что-либо подобное.

Лучшим способом измерения сложности чтения текста, скорее всего, будет то, что связано с отношением низкочастотных слов к высокочастотным, а также с количеством hapax legomen в тексте . Но я бы не стал придумывать подобную эвристику, потому что было бы очень сложно эмпирически проверить что-либо подобное.

Лучшим способом измерения сложности чтения текста, скорее всего, будет то, что связано с отношением низкочастотных слов к высокочастотным, а также с количеством hapax legomen в тексте . Но я бы не стал придумывать подобную эвристику, потому что было бы очень сложно эмпирически проверить что-либо подобное.

17
ответ дан 6 December 2019 в 05:49
поделиться

На самом деле я не вижу проблем с этим кодом. Конечно, его можно немного оптимизировать, если вы действительно этого хотите, заменив все различные функции одним циклом подсчета. Однако я решительно утверждаю, что в этом нет необходимости и даже совершенно неправильно. Ваш текущий код очень читаем и прост для понимания, и любые оптимизации, вероятно, усугубят ситуацию с этой точки зрения. Используйте его как есть и не пытайтесь оптимизировать, если только это не окажется узким местом производительности.

0
ответ дан 6 December 2019 в 05:49
поделиться

Взгляните на класс PHP Text Statistics на GitHub.

8
ответ дан 6 December 2019 в 05:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: