axyseo 2.0.0-alpha.2 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1255) hide show
  1. package/build/config/diacritics.js +1 -7
  2. package/build/config/diacritics.js.map +1 -1
  3. package/build/config/getTransliterations.js +6 -14
  4. package/build/config/getTransliterations.js.map +1 -1
  5. package/build/config/transliterationsWPstyle.js +5 -12
  6. package/build/config/transliterationsWPstyle.js.map +1 -1
  7. package/build/config/wordBoundaries.js +1 -7
  8. package/build/config/wordBoundaries.js.map +1 -1
  9. package/build/config/wordBoundariesWithoutPunctuation.js +2 -8
  10. package/build/config/wordBoundariesWithoutPunctuation.js.map +1 -1
  11. package/build/const/analysis.js +32 -11
  12. package/build/const/analysis.js.map +1 -1
  13. package/build/errors/invalidType.js +1 -8
  14. package/build/errors/invalidType.js.map +1 -1
  15. package/build/errors/missingArgument.js +1 -8
  16. package/build/errors/missingArgument.js.map +1 -1
  17. package/build/helpers/createMeasurementElement.js +1 -8
  18. package/build/helpers/createMeasurementElement.js.map +1 -1
  19. package/build/helpers/domManipulation.js +3 -8
  20. package/build/helpers/domManipulation.js.map +1 -1
  21. package/build/helpers/errors.js +5 -10
  22. package/build/helpers/errors.js.map +1 -1
  23. package/build/helpers/factory.js +7 -13
  24. package/build/helpers/factory.js.map +1 -1
  25. package/build/helpers/formatNumber.js +1 -7
  26. package/build/helpers/formatNumber.js.map +1 -1
  27. package/build/helpers/formatString.js +4 -9
  28. package/build/helpers/formatString.js.map +1 -1
  29. package/build/helpers/getLanguagesWithWordComplexity.js +1 -7
  30. package/build/helpers/getLanguagesWithWordComplexity.js.map +1 -1
  31. package/build/helpers/getLanguagesWithWordFormSupport.js +1 -7
  32. package/build/helpers/getLanguagesWithWordFormSupport.js.map +1 -1
  33. package/build/helpers/getWordComplexityConfig.js +9 -15
  34. package/build/helpers/getWordComplexityConfig.js.map +1 -1
  35. package/build/helpers/getWordComplexityHelper.js +9 -15
  36. package/build/helpers/getWordComplexityHelper.js.map +1 -1
  37. package/build/helpers/htmlEntities.js +6 -11
  38. package/build/helpers/htmlEntities.js.map +1 -1
  39. package/build/helpers/includesAny.js +3 -8
  40. package/build/helpers/includesAny.js.map +1 -1
  41. package/build/helpers/index.js +30 -72
  42. package/build/helpers/index.js.map +1 -1
  43. package/build/helpers/shortlinker/Shortlinker.js +1 -8
  44. package/build/helpers/shortlinker/Shortlinker.js.map +1 -1
  45. package/build/helpers/shortlinker/index.js +1 -16
  46. package/build/helpers/shortlinker/index.js.map +1 -1
  47. package/build/helpers/shortlinker/singleton.js +5 -13
  48. package/build/helpers/shortlinker/singleton.js.map +1 -1
  49. package/build/helpers/types.js +2 -9
  50. package/build/helpers/types.js.map +1 -1
  51. package/build/index.js +25 -87
  52. package/build/index.js.map +1 -1
  53. package/build/languageProcessing/AbstractResearcher.js +88 -95
  54. package/build/languageProcessing/AbstractResearcher.js.map +1 -1
  55. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +3 -10
  56. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js.map +1 -1
  57. package/build/languageProcessing/helpers/html/getFieldsToMark.js +6 -11
  58. package/build/languageProcessing/helpers/html/getFieldsToMark.js.map +1 -1
  59. package/build/languageProcessing/helpers/html/getSubheadingTexts.js +3 -8
  60. package/build/languageProcessing/helpers/html/getSubheadingTexts.js.map +1 -1
  61. package/build/languageProcessing/helpers/html/getSubheadings.js +2 -12
  62. package/build/languageProcessing/helpers/html/getSubheadings.js.map +1 -1
  63. package/build/languageProcessing/helpers/html/html.js +9 -17
  64. package/build/languageProcessing/helpers/html/html.js.map +1 -1
  65. package/build/languageProcessing/helpers/html/htmlParser.js +3 -10
  66. package/build/languageProcessing/helpers/html/htmlParser.js.map +1 -1
  67. package/build/languageProcessing/helpers/html/matchParagraphs.js +7 -12
  68. package/build/languageProcessing/helpers/html/matchParagraphs.js.map +1 -1
  69. package/build/languageProcessing/helpers/html/normalizeHTML.js +4 -10
  70. package/build/languageProcessing/helpers/html/normalizeHTML.js.map +1 -1
  71. package/build/languageProcessing/helpers/image/getAltAttribute.js +3 -9
  72. package/build/languageProcessing/helpers/image/getAltAttribute.js.map +1 -1
  73. package/build/languageProcessing/helpers/image/getImagesInTree.js +1 -7
  74. package/build/languageProcessing/helpers/image/getImagesInTree.js.map +1 -1
  75. package/build/languageProcessing/helpers/image/imageInText.js +5 -12
  76. package/build/languageProcessing/helpers/image/imageInText.js.map +1 -1
  77. package/build/languageProcessing/helpers/index.js +5 -40
  78. package/build/languageProcessing/helpers/index.js.map +1 -1
  79. package/build/languageProcessing/helpers/language/getLanguage.js +1 -7
  80. package/build/languageProcessing/helpers/language/getLanguage.js.map +1 -1
  81. package/build/languageProcessing/helpers/link/checkNofollow.js +3 -10
  82. package/build/languageProcessing/helpers/link/checkNofollow.js.map +1 -1
  83. package/build/languageProcessing/helpers/link/getAnchorsFromText.js +1 -7
  84. package/build/languageProcessing/helpers/link/getAnchorsFromText.js.map +1 -1
  85. package/build/languageProcessing/helpers/link/getLinkType.js +7 -13
  86. package/build/languageProcessing/helpers/link/getLinkType.js.map +1 -1
  87. package/build/languageProcessing/helpers/match/findKeywordFormsInString.js +10 -17
  88. package/build/languageProcessing/helpers/match/findKeywordFormsInString.js.map +1 -1
  89. package/build/languageProcessing/helpers/match/isDoubleQuoted.js +4 -10
  90. package/build/languageProcessing/helpers/match/isDoubleQuoted.js.map +1 -1
  91. package/build/languageProcessing/helpers/match/matchTextWithArray.js +6 -12
  92. package/build/languageProcessing/helpers/match/matchTextWithArray.js.map +1 -1
  93. package/build/languageProcessing/helpers/match/matchTextWithTransliteration.js +16 -22
  94. package/build/languageProcessing/helpers/match/matchTextWithTransliteration.js.map +1 -1
  95. package/build/languageProcessing/helpers/match/matchTextWithWord.js +17 -23
  96. package/build/languageProcessing/helpers/match/matchTextWithWord.js.map +1 -1
  97. package/build/languageProcessing/helpers/match/matchWordFormsWithSentence.js +7 -15
  98. package/build/languageProcessing/helpers/match/matchWordFormsWithSentence.js.map +1 -1
  99. package/build/languageProcessing/helpers/match/processExactMatchRequest.js +3 -9
  100. package/build/languageProcessing/helpers/match/processExactMatchRequest.js.map +1 -1
  101. package/build/languageProcessing/helpers/morphology/baseStemmer.js +1 -7
  102. package/build/languageProcessing/helpers/morphology/baseStemmer.js.map +1 -1
  103. package/build/languageProcessing/helpers/morphology/buildFormRule.js +1 -7
  104. package/build/languageProcessing/helpers/morphology/buildFormRule.js.map +1 -1
  105. package/build/languageProcessing/helpers/morphology/buildTopicStems.js +13 -23
  106. package/build/languageProcessing/helpers/morphology/buildTopicStems.js.map +1 -1
  107. package/build/languageProcessing/helpers/morphology/createRulesFromArrays.js +2 -9
  108. package/build/languageProcessing/helpers/morphology/createRulesFromArrays.js.map +1 -1
  109. package/build/languageProcessing/helpers/morphology/exceptionListHelpers.js +5 -13
  110. package/build/languageProcessing/helpers/morphology/exceptionListHelpers.js.map +1 -1
  111. package/build/languageProcessing/helpers/morphology/findMatchingEndingInArray.js +1 -7
  112. package/build/languageProcessing/helpers/morphology/findMatchingEndingInArray.js.map +1 -1
  113. package/build/languageProcessing/helpers/morphology/flattenSortLength.js +3 -8
  114. package/build/languageProcessing/helpers/morphology/flattenSortLength.js.map +1 -1
  115. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +12 -18
  116. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js.map +1 -1
  117. package/build/languageProcessing/helpers/morphology/regexHelpers.js +3 -11
  118. package/build/languageProcessing/helpers/morphology/regexHelpers.js.map +1 -1
  119. package/build/languageProcessing/helpers/morphology/stemHelpers.js +2 -9
  120. package/build/languageProcessing/helpers/morphology/stemHelpers.js.map +1 -1
  121. package/build/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js +1 -7
  122. package/build/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js.map +1 -1
  123. package/build/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js +5 -11
  124. package/build/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js.map +1 -1
  125. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js +9 -15
  126. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js.map +1 -1
  127. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js +9 -15
  128. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js.map +1 -1
  129. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js +28 -34
  130. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js.map +1 -1
  131. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js +1 -7
  132. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js.map +1 -1
  133. package/build/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js +3 -8
  134. package/build/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js.map +1 -1
  135. package/build/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js +5 -11
  136. package/build/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js.map +1 -1
  137. package/build/languageProcessing/helpers/prominentWords/determineProminentWords.js +16 -28
  138. package/build/languageProcessing/helpers/prominentWords/determineProminentWords.js.map +1 -1
  139. package/build/languageProcessing/helpers/regex/createRegexFromArray.js +10 -16
  140. package/build/languageProcessing/helpers/regex/createRegexFromArray.js.map +1 -1
  141. package/build/languageProcessing/helpers/regex/createRegexFromDoubleArray.js +4 -10
  142. package/build/languageProcessing/helpers/regex/createRegexFromDoubleArray.js.map +1 -1
  143. package/build/languageProcessing/helpers/regex/createWordRegex.js +12 -18
  144. package/build/languageProcessing/helpers/regex/createWordRegex.js.map +1 -1
  145. package/build/languageProcessing/helpers/regex/matchStringWithRegex.js +1 -7
  146. package/build/languageProcessing/helpers/regex/matchStringWithRegex.js.map +1 -1
  147. package/build/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js +1 -7
  148. package/build/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js.map +1 -1
  149. package/build/languageProcessing/helpers/sanitize/doubleQuotes.js +1 -7
  150. package/build/languageProcessing/helpers/sanitize/doubleQuotes.js.map +1 -1
  151. package/build/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js +3 -11
  152. package/build/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js.map +1 -1
  153. package/build/languageProcessing/helpers/sanitize/mergeListItems.js +1 -7
  154. package/build/languageProcessing/helpers/sanitize/mergeListItems.js.map +1 -1
  155. package/build/languageProcessing/helpers/sanitize/parseSynonyms.js +5 -11
  156. package/build/languageProcessing/helpers/sanitize/parseSynonyms.js.map +1 -1
  157. package/build/languageProcessing/helpers/sanitize/quotes.js +4 -12
  158. package/build/languageProcessing/helpers/sanitize/quotes.js.map +1 -1
  159. package/build/languageProcessing/helpers/sanitize/removeEmailAddresses.js +1 -7
  160. package/build/languageProcessing/helpers/sanitize/removeEmailAddresses.js.map +1 -1
  161. package/build/languageProcessing/helpers/sanitize/removePunctuation.js +7 -13
  162. package/build/languageProcessing/helpers/sanitize/removePunctuation.js.map +1 -1
  163. package/build/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js +1 -7
  164. package/build/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js.map +1 -1
  165. package/build/languageProcessing/helpers/sanitize/removeSentenceTerminators.js +1 -7
  166. package/build/languageProcessing/helpers/sanitize/removeSentenceTerminators.js.map +1 -1
  167. package/build/languageProcessing/helpers/sanitize/removeURLs.js +1 -7
  168. package/build/languageProcessing/helpers/sanitize/removeURLs.js.map +1 -1
  169. package/build/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js +1 -7
  170. package/build/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js.map +1 -1
  171. package/build/languageProcessing/helpers/sanitize/sanitizeString.js +5 -10
  172. package/build/languageProcessing/helpers/sanitize/sanitizeString.js.map +1 -1
  173. package/build/languageProcessing/helpers/sanitize/stripHTMLTags.js +7 -16
  174. package/build/languageProcessing/helpers/sanitize/stripHTMLTags.js.map +1 -1
  175. package/build/languageProcessing/helpers/sanitize/stripNonTextTags.js +4 -10
  176. package/build/languageProcessing/helpers/sanitize/stripNonTextTags.js.map +1 -1
  177. package/build/languageProcessing/helpers/sanitize/stripNumbers.js +4 -10
  178. package/build/languageProcessing/helpers/sanitize/stripNumbers.js.map +1 -1
  179. package/build/languageProcessing/helpers/sanitize/stripSpaces.js +1 -7
  180. package/build/languageProcessing/helpers/sanitize/stripSpaces.js.map +1 -1
  181. package/build/languageProcessing/helpers/sanitize/stripWordBoundaries.js +2 -10
  182. package/build/languageProcessing/helpers/sanitize/stripWordBoundaries.js.map +1 -1
  183. package/build/languageProcessing/helpers/sanitize/unifyWhitespace.js +2 -11
  184. package/build/languageProcessing/helpers/sanitize/unifyWhitespace.js.map +1 -1
  185. package/build/languageProcessing/helpers/sentence/SentenceTokenizer.js +22 -29
  186. package/build/languageProcessing/helpers/sentence/SentenceTokenizer.js.map +1 -1
  187. package/build/languageProcessing/helpers/sentence/countSentences.js +4 -10
  188. package/build/languageProcessing/helpers/sentence/countSentences.js.map +1 -1
  189. package/build/languageProcessing/helpers/sentence/getSentences.js +13 -20
  190. package/build/languageProcessing/helpers/sentence/getSentences.js.map +1 -1
  191. package/build/languageProcessing/helpers/sentence/getSentencesFromTree.js +2 -9
  192. package/build/languageProcessing/helpers/sentence/getSentencesFromTree.js.map +1 -1
  193. package/build/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js +4 -10
  194. package/build/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js.map +1 -1
  195. package/build/languageProcessing/helpers/sentence/sentencesLength.js +7 -13
  196. package/build/languageProcessing/helpers/sentence/sentencesLength.js.map +1 -1
  197. package/build/languageProcessing/helpers/syllables/DeviationFragment.js +5 -11
  198. package/build/languageProcessing/helpers/syllables/DeviationFragment.js.map +1 -1
  199. package/build/languageProcessing/helpers/syllables/countSyllables.js +23 -30
  200. package/build/languageProcessing/helpers/syllables/countSyllables.js.map +1 -1
  201. package/build/languageProcessing/helpers/syllables/syllableCountIterator.js +7 -14
  202. package/build/languageProcessing/helpers/syllables/syllableCountIterator.js.map +1 -1
  203. package/build/languageProcessing/helpers/syllables/syllableCountStep.js +5 -12
  204. package/build/languageProcessing/helpers/syllables/syllableCountStep.js.map +1 -1
  205. package/build/languageProcessing/helpers/transform/transformWordsWithHyphens.js +1 -7
  206. package/build/languageProcessing/helpers/transform/transformWordsWithHyphens.js.map +1 -1
  207. package/build/languageProcessing/helpers/transliterate/replaceDiacritics.js +4 -10
  208. package/build/languageProcessing/helpers/transliterate/replaceDiacritics.js.map +1 -1
  209. package/build/languageProcessing/helpers/transliterate/specialCharacterMappings.js +12 -23
  210. package/build/languageProcessing/helpers/transliterate/specialCharacterMappings.js.map +1 -1
  211. package/build/languageProcessing/helpers/transliterate/transliterate.js +3 -9
  212. package/build/languageProcessing/helpers/transliterate/transliterate.js.map +1 -1
  213. package/build/languageProcessing/helpers/transliterate/transliterateWPstyle.js +3 -9
  214. package/build/languageProcessing/helpers/transliterate/transliterateWPstyle.js.map +1 -1
  215. package/build/languageProcessing/helpers/url/parseSlug.js +1 -7
  216. package/build/languageProcessing/helpers/url/parseSlug.js.map +1 -1
  217. package/build/languageProcessing/helpers/url/url.js +7 -13
  218. package/build/languageProcessing/helpers/url/url.js.map +1 -1
  219. package/build/languageProcessing/helpers/word/addWordboundary.js +1 -7
  220. package/build/languageProcessing/helpers/word/addWordboundary.js.map +1 -1
  221. package/build/languageProcessing/helpers/word/areWordsInSentence.js +4 -10
  222. package/build/languageProcessing/helpers/word/areWordsInSentence.js.map +1 -1
  223. package/build/languageProcessing/helpers/word/countMetaDescriptionLength.js +1 -7
  224. package/build/languageProcessing/helpers/word/countMetaDescriptionLength.js.map +1 -1
  225. package/build/languageProcessing/helpers/word/countWords.js +4 -10
  226. package/build/languageProcessing/helpers/word/countWords.js.map +1 -1
  227. package/build/languageProcessing/helpers/word/createPunctuationTokens.js +5 -10
  228. package/build/languageProcessing/helpers/word/createPunctuationTokens.js.map +1 -1
  229. package/build/languageProcessing/helpers/word/filterWordsFromArray.js +4 -9
  230. package/build/languageProcessing/helpers/word/filterWordsFromArray.js.map +1 -1
  231. package/build/languageProcessing/helpers/word/followsIndex.js +5 -10
  232. package/build/languageProcessing/helpers/word/followsIndex.js.map +1 -1
  233. package/build/languageProcessing/helpers/word/getAllWordsFromTree.js +7 -13
  234. package/build/languageProcessing/helpers/word/getAllWordsFromTree.js.map +1 -1
  235. package/build/languageProcessing/helpers/word/getWords.js +9 -19
  236. package/build/languageProcessing/helpers/word/getWords.js.map +1 -1
  237. package/build/languageProcessing/helpers/word/includesIndex.js +5 -10
  238. package/build/languageProcessing/helpers/word/includesIndex.js.map +1 -1
  239. package/build/languageProcessing/helpers/word/indices.js +14 -25
  240. package/build/languageProcessing/helpers/word/indices.js.map +1 -1
  241. package/build/languageProcessing/helpers/word/markWordsInSentences.js +23 -35
  242. package/build/languageProcessing/helpers/word/markWordsInSentences.js.map +1 -1
  243. package/build/languageProcessing/helpers/word/matchWordInSentence.js +8 -15
  244. package/build/languageProcessing/helpers/word/matchWordInSentence.js.map +1 -1
  245. package/build/languageProcessing/helpers/word/splitIntoTokens.js +3 -9
  246. package/build/languageProcessing/helpers/word/splitIntoTokens.js.map +1 -1
  247. package/build/languageProcessing/index.js +41 -282
  248. package/build/languageProcessing/index.js.map +1 -1
  249. package/build/languageProcessing/languages/_default/Researcher.js +5 -13
  250. package/build/languageProcessing/languages/_default/Researcher.js.map +1 -1
  251. package/build/languageProcessing/languages/_default/helpers/getStemmer.js +3 -9
  252. package/build/languageProcessing/languages/_default/helpers/getStemmer.js.map +1 -1
  253. package/build/languageProcessing/languages/ar/Researcher.js +19 -27
  254. package/build/languageProcessing/languages/ar/Researcher.js.map +1 -1
  255. package/build/languageProcessing/languages/ar/config/firstWordExceptions.js +1 -7
  256. package/build/languageProcessing/languages/ar/config/firstWordExceptions.js.map +1 -1
  257. package/build/languageProcessing/languages/ar/config/functionWords.js +7 -13
  258. package/build/languageProcessing/languages/ar/config/functionWords.js.map +1 -1
  259. package/build/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js +1 -7
  260. package/build/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js.map +1 -1
  261. package/build/languageProcessing/languages/ar/config/prefixedFunctionWords.js +2 -8
  262. package/build/languageProcessing/languages/ar/config/prefixedFunctionWords.js.map +1 -1
  263. package/build/languageProcessing/languages/ar/config/transitionWords.js +4 -10
  264. package/build/languageProcessing/languages/ar/config/transitionWords.js.map +1 -1
  265. package/build/languageProcessing/languages/ar/config/twoPartTransitionWords.js +2 -7
  266. package/build/languageProcessing/languages/ar/config/twoPartTransitionWords.js.map +1 -1
  267. package/build/languageProcessing/languages/ar/helpers/createBasicWordForms.js +6 -11
  268. package/build/languageProcessing/languages/ar/helpers/createBasicWordForms.js.map +1 -1
  269. package/build/languageProcessing/languages/ar/helpers/getStemmer.js +8 -14
  270. package/build/languageProcessing/languages/ar/helpers/getStemmer.js.map +1 -1
  271. package/build/languageProcessing/languages/ar/helpers/internal/stem.js +1 -7
  272. package/build/languageProcessing/languages/ar/helpers/internal/stem.js.map +1 -1
  273. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js +5 -12
  274. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js.map +1 -1
  275. package/build/languageProcessing/languages/ca/Researcher.js +11 -19
  276. package/build/languageProcessing/languages/ca/Researcher.js.map +1 -1
  277. package/build/languageProcessing/languages/ca/config/sentenceLength.js +1 -7
  278. package/build/languageProcessing/languages/ca/config/sentenceLength.js.map +1 -1
  279. package/build/languageProcessing/languages/ca/config/transitionWords.js +4 -10
  280. package/build/languageProcessing/languages/ca/config/transitionWords.js.map +1 -1
  281. package/build/languageProcessing/languages/ca/config/twoPartTransitionWords.js +2 -7
  282. package/build/languageProcessing/languages/ca/config/twoPartTransitionWords.js.map +1 -1
  283. package/build/languageProcessing/languages/ca/helpers/getStemmer.js +3 -9
  284. package/build/languageProcessing/languages/ca/helpers/getStemmer.js.map +1 -1
  285. package/build/languageProcessing/languages/cs/Researcher.js +17 -25
  286. package/build/languageProcessing/languages/cs/Researcher.js.map +1 -1
  287. package/build/languageProcessing/languages/cs/config/firstWordExceptions.js +1 -7
  288. package/build/languageProcessing/languages/cs/config/firstWordExceptions.js.map +1 -1
  289. package/build/languageProcessing/languages/cs/config/functionWords.js +4 -10
  290. package/build/languageProcessing/languages/cs/config/functionWords.js.map +1 -1
  291. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js +2 -8
  292. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  293. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js +2 -8
  294. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js.map +1 -1
  295. package/build/languageProcessing/languages/cs/config/stopWords.js +1 -7
  296. package/build/languageProcessing/languages/cs/config/stopWords.js.map +1 -1
  297. package/build/languageProcessing/languages/cs/config/transitionWords.js +4 -10
  298. package/build/languageProcessing/languages/cs/config/transitionWords.js.map +1 -1
  299. package/build/languageProcessing/languages/cs/config/twoPartTransitionWords.js +2 -7
  300. package/build/languageProcessing/languages/cs/config/twoPartTransitionWords.js.map +1 -1
  301. package/build/languageProcessing/languages/cs/helpers/getClauses.js +9 -16
  302. package/build/languageProcessing/languages/cs/helpers/getClauses.js.map +1 -1
  303. package/build/languageProcessing/languages/cs/helpers/getStemmer.js +8 -14
  304. package/build/languageProcessing/languages/cs/helpers/getStemmer.js.map +1 -1
  305. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js +6 -12
  306. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js.map +1 -1
  307. package/build/languageProcessing/languages/cs/helpers/internal/stem.js +1 -7
  308. package/build/languageProcessing/languages/cs/helpers/internal/stem.js.map +1 -1
  309. package/build/languageProcessing/languages/cs/values/Clause.js +5 -12
  310. package/build/languageProcessing/languages/cs/values/Clause.js.map +1 -1
  311. package/build/languageProcessing/languages/de/Researcher.js +27 -35
  312. package/build/languageProcessing/languages/de/Researcher.js.map +1 -1
  313. package/build/languageProcessing/languages/de/config/firstWordExceptions.js +1 -7
  314. package/build/languageProcessing/languages/de/config/firstWordExceptions.js.map +1 -1
  315. package/build/languageProcessing/languages/de/config/functionWords.js +11 -19
  316. package/build/languageProcessing/languages/de/config/functionWords.js.map +1 -1
  317. package/build/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js +1 -7
  318. package/build/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js.map +1 -1
  319. package/build/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js +4 -10
  320. package/build/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  321. package/build/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js +1 -7
  322. package/build/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js.map +1 -1
  323. package/build/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js +1 -7
  324. package/build/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js.map +1 -1
  325. package/build/languageProcessing/languages/de/config/keyphraseLength.js +1 -7
  326. package/build/languageProcessing/languages/de/config/keyphraseLength.js.map +1 -1
  327. package/build/languageProcessing/languages/de/config/stopWords.js +1 -7
  328. package/build/languageProcessing/languages/de/config/stopWords.js.map +1 -1
  329. package/build/languageProcessing/languages/de/config/transitionWords.js +4 -10
  330. package/build/languageProcessing/languages/de/config/transitionWords.js.map +1 -1
  331. package/build/languageProcessing/languages/de/config/twoPartTransitionWords.js +2 -7
  332. package/build/languageProcessing/languages/de/config/twoPartTransitionWords.js.map +1 -1
  333. package/build/languageProcessing/languages/de/config/wordComplexity.js +1 -7
  334. package/build/languageProcessing/languages/de/config/wordComplexity.js.map +1 -1
  335. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +3 -9
  336. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js.map +1 -1
  337. package/build/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js +1 -7
  338. package/build/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js.map +1 -1
  339. package/build/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js +3 -8
  340. package/build/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js.map +1 -1
  341. package/build/languageProcessing/languages/de/helpers/getClauses.js +9 -16
  342. package/build/languageProcessing/languages/de/helpers/getClauses.js.map +1 -1
  343. package/build/languageProcessing/languages/de/helpers/getStemmer.js +8 -14
  344. package/build/languageProcessing/languages/de/helpers/getStemmer.js.map +1 -1
  345. package/build/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js +4 -11
  346. package/build/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js.map +1 -1
  347. package/build/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js +4 -10
  348. package/build/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js.map +1 -1
  349. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js +10 -16
  350. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js.map +1 -1
  351. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js +9 -16
  352. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js.map +1 -1
  353. package/build/languageProcessing/languages/de/helpers/internal/stem.js +1 -7
  354. package/build/languageProcessing/languages/de/helpers/internal/stem.js.map +1 -1
  355. package/build/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js +4 -10
  356. package/build/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js.map +1 -1
  357. package/build/languageProcessing/languages/de/values/Clause.js +11 -18
  358. package/build/languageProcessing/languages/de/values/Clause.js.map +1 -1
  359. package/build/languageProcessing/languages/el/Researcher.js +18 -26
  360. package/build/languageProcessing/languages/el/Researcher.js.map +1 -1
  361. package/build/languageProcessing/languages/el/config/firstWordExceptions.js +1 -7
  362. package/build/languageProcessing/languages/el/config/firstWordExceptions.js.map +1 -1
  363. package/build/languageProcessing/languages/el/config/functionWords.js +4 -10
  364. package/build/languageProcessing/languages/el/config/functionWords.js.map +1 -1
  365. package/build/languageProcessing/languages/el/config/internal/auxiliaries.js +1 -7
  366. package/build/languageProcessing/languages/el/config/internal/auxiliaries.js.map +1 -1
  367. package/build/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js +1 -7
  368. package/build/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js.map +1 -1
  369. package/build/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js +1 -7
  370. package/build/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js.map +1 -1
  371. package/build/languageProcessing/languages/el/config/stopWords.js +1 -7
  372. package/build/languageProcessing/languages/el/config/stopWords.js.map +1 -1
  373. package/build/languageProcessing/languages/el/config/transitionWords.js +4 -10
  374. package/build/languageProcessing/languages/el/config/transitionWords.js.map +1 -1
  375. package/build/languageProcessing/languages/el/config/twoPartTransitionWords.js +2 -7
  376. package/build/languageProcessing/languages/el/config/twoPartTransitionWords.js.map +1 -1
  377. package/build/languageProcessing/languages/el/helpers/getClauses.js +9 -16
  378. package/build/languageProcessing/languages/el/helpers/getClauses.js.map +1 -1
  379. package/build/languageProcessing/languages/el/helpers/getStemmer.js +7 -14
  380. package/build/languageProcessing/languages/el/helpers/getStemmer.js.map +1 -1
  381. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js +3 -9
  382. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js.map +1 -1
  383. package/build/languageProcessing/languages/el/helpers/internal/stem.js +4 -13
  384. package/build/languageProcessing/languages/el/helpers/internal/stem.js.map +1 -1
  385. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js +7 -14
  386. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js.map +1 -1
  387. package/build/languageProcessing/languages/el/values/Clause.js +6 -12
  388. package/build/languageProcessing/languages/el/values/Clause.js.map +1 -1
  389. package/build/languageProcessing/languages/en/Researcher.js +21 -29
  390. package/build/languageProcessing/languages/en/Researcher.js.map +1 -1
  391. package/build/languageProcessing/languages/en/config/abbreviations.js +2 -8
  392. package/build/languageProcessing/languages/en/config/abbreviations.js.map +1 -1
  393. package/build/languageProcessing/languages/en/config/firstWordExceptions.js +1 -7
  394. package/build/languageProcessing/languages/en/config/firstWordExceptions.js.map +1 -1
  395. package/build/languageProcessing/languages/en/config/functionWords.js +11 -18
  396. package/build/languageProcessing/languages/en/config/functionWords.js.map +1 -1
  397. package/build/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js +6 -12
  398. package/build/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  399. package/build/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js +1 -7
  400. package/build/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js.map +1 -1
  401. package/build/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js +1 -7
  402. package/build/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js.map +1 -1
  403. package/build/languageProcessing/languages/en/config/regularParticiplesRegex.js +1 -7
  404. package/build/languageProcessing/languages/en/config/regularParticiplesRegex.js.map +1 -1
  405. package/build/languageProcessing/languages/en/config/stopWords.js +1 -7
  406. package/build/languageProcessing/languages/en/config/stopWords.js.map +1 -1
  407. package/build/languageProcessing/languages/en/config/transitionWords.js +4 -10
  408. package/build/languageProcessing/languages/en/config/transitionWords.js.map +1 -1
  409. package/build/languageProcessing/languages/en/config/twoPartTransitionWords.js +2 -7
  410. package/build/languageProcessing/languages/en/config/twoPartTransitionWords.js.map +1 -1
  411. package/build/languageProcessing/languages/en/config/wordComplexity.js +1 -7
  412. package/build/languageProcessing/languages/en/config/wordComplexity.js.map +1 -1
  413. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +3 -9
  414. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js.map +1 -1
  415. package/build/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js +4 -10
  416. package/build/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js.map +1 -1
  417. package/build/languageProcessing/languages/en/helpers/getClauses.js +15 -22
  418. package/build/languageProcessing/languages/en/helpers/getClauses.js.map +1 -1
  419. package/build/languageProcessing/languages/en/helpers/getStemmer.js +8 -14
  420. package/build/languageProcessing/languages/en/helpers/getStemmer.js.map +1 -1
  421. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js +21 -32
  422. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js.map +1 -1
  423. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +6 -13
  424. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js.map +1 -1
  425. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js +8 -14
  426. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js.map +1 -1
  427. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js +6 -16
  428. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js.map +1 -1
  429. package/build/languageProcessing/languages/en/values/Clause.js +10 -17
  430. package/build/languageProcessing/languages/en/values/Clause.js.map +1 -1
  431. package/build/languageProcessing/languages/es/Researcher.js +23 -31
  432. package/build/languageProcessing/languages/es/Researcher.js.map +1 -1
  433. package/build/languageProcessing/languages/es/config/firstWordExceptions.js +1 -7
  434. package/build/languageProcessing/languages/es/config/firstWordExceptions.js.map +1 -1
  435. package/build/languageProcessing/languages/es/config/functionWords.js +11 -17
  436. package/build/languageProcessing/languages/es/config/functionWords.js.map +1 -1
  437. package/build/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js +1 -7
  438. package/build/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  439. package/build/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js +1 -7
  440. package/build/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js.map +1 -1
  441. package/build/languageProcessing/languages/es/config/sentenceLength.js +1 -7
  442. package/build/languageProcessing/languages/es/config/sentenceLength.js.map +1 -1
  443. package/build/languageProcessing/languages/es/config/stopWords.js +1 -7
  444. package/build/languageProcessing/languages/es/config/stopWords.js.map +1 -1
  445. package/build/languageProcessing/languages/es/config/transitionWords.js +4 -10
  446. package/build/languageProcessing/languages/es/config/transitionWords.js.map +1 -1
  447. package/build/languageProcessing/languages/es/config/twoPartTransitionWords.js +2 -7
  448. package/build/languageProcessing/languages/es/config/twoPartTransitionWords.js.map +1 -1
  449. package/build/languageProcessing/languages/es/config/wordComplexity.js +1 -7
  450. package/build/languageProcessing/languages/es/config/wordComplexity.js.map +1 -1
  451. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +3 -9
  452. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js.map +1 -1
  453. package/build/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js +1 -7
  454. package/build/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js.map +1 -1
  455. package/build/languageProcessing/languages/es/helpers/getClauses.js +10 -17
  456. package/build/languageProcessing/languages/es/helpers/getClauses.js.map +1 -1
  457. package/build/languageProcessing/languages/es/helpers/getStemmer.js +8 -14
  458. package/build/languageProcessing/languages/es/helpers/getStemmer.js.map +1 -1
  459. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +7 -13
  460. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js.map +1 -1
  461. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js +6 -12
  462. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js.map +1 -1
  463. package/build/languageProcessing/languages/es/helpers/internal/stem.js +5 -13
  464. package/build/languageProcessing/languages/es/helpers/internal/stem.js.map +1 -1
  465. package/build/languageProcessing/languages/es/values/Clause.js +7 -14
  466. package/build/languageProcessing/languages/es/values/Clause.js.map +1 -1
  467. package/build/languageProcessing/languages/fa/Researcher.js +19 -27
  468. package/build/languageProcessing/languages/fa/Researcher.js.map +1 -1
  469. package/build/languageProcessing/languages/fa/config/firstWordExceptions.js +1 -7
  470. package/build/languageProcessing/languages/fa/config/firstWordExceptions.js.map +1 -1
  471. package/build/languageProcessing/languages/fa/config/functionWords.js +4 -10
  472. package/build/languageProcessing/languages/fa/config/functionWords.js.map +1 -1
  473. package/build/languageProcessing/languages/fa/config/internal/participles.js +1 -7
  474. package/build/languageProcessing/languages/fa/config/internal/participles.js.map +1 -1
  475. package/build/languageProcessing/languages/fa/config/sentenceLength.js +1 -7
  476. package/build/languageProcessing/languages/fa/config/sentenceLength.js.map +1 -1
  477. package/build/languageProcessing/languages/fa/config/transitionWords.js +4 -10
  478. package/build/languageProcessing/languages/fa/config/transitionWords.js.map +1 -1
  479. package/build/languageProcessing/languages/fa/config/twoPartTransitionWords.js +2 -7
  480. package/build/languageProcessing/languages/fa/config/twoPartTransitionWords.js.map +1 -1
  481. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js +3 -9
  482. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js.map +1 -1
  483. package/build/languageProcessing/languages/fa/helpers/getStemmer.js +3 -9
  484. package/build/languageProcessing/languages/fa/helpers/getStemmer.js.map +1 -1
  485. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js +6 -12
  486. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js.map +1 -1
  487. package/build/languageProcessing/languages/fr/Researcher.js +21 -29
  488. package/build/languageProcessing/languages/fr/Researcher.js.map +1 -1
  489. package/build/languageProcessing/languages/fr/config/firstWordExceptions.js +1 -7
  490. package/build/languageProcessing/languages/fr/config/firstWordExceptions.js.map +1 -1
  491. package/build/languageProcessing/languages/fr/config/functionWords.js +11 -17
  492. package/build/languageProcessing/languages/fr/config/functionWords.js.map +1 -1
  493. package/build/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js +4 -9
  494. package/build/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js.map +1 -1
  495. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js +1 -7
  496. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  497. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js +4 -9
  498. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js.map +1 -1
  499. package/build/languageProcessing/languages/fr/config/stopWords.js +1 -7
  500. package/build/languageProcessing/languages/fr/config/stopWords.js.map +1 -1
  501. package/build/languageProcessing/languages/fr/config/transitionWords.js +4 -10
  502. package/build/languageProcessing/languages/fr/config/transitionWords.js.map +1 -1
  503. package/build/languageProcessing/languages/fr/config/twoPartTransitionWords.js +2 -7
  504. package/build/languageProcessing/languages/fr/config/twoPartTransitionWords.js.map +1 -1
  505. package/build/languageProcessing/languages/fr/config/wordComplexity.js +1 -7
  506. package/build/languageProcessing/languages/fr/config/wordComplexity.js.map +1 -1
  507. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +3 -9
  508. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js.map +1 -1
  509. package/build/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js +3 -9
  510. package/build/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js.map +1 -1
  511. package/build/languageProcessing/languages/fr/helpers/getClauses.js +10 -17
  512. package/build/languageProcessing/languages/fr/helpers/getClauses.js.map +1 -1
  513. package/build/languageProcessing/languages/fr/helpers/getStemmer.js +8 -14
  514. package/build/languageProcessing/languages/fr/helpers/getStemmer.js.map +1 -1
  515. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js +11 -16
  516. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js.map +1 -1
  517. package/build/languageProcessing/languages/fr/helpers/internal/stem.js +3 -10
  518. package/build/languageProcessing/languages/fr/helpers/internal/stem.js.map +1 -1
  519. package/build/languageProcessing/languages/fr/values/Clause.js +14 -20
  520. package/build/languageProcessing/languages/fr/values/Clause.js.map +1 -1
  521. package/build/languageProcessing/languages/he/Researcher.js +21 -29
  522. package/build/languageProcessing/languages/he/Researcher.js.map +1 -1
  523. package/build/languageProcessing/languages/he/config/firstWordExceptions.js +1 -7
  524. package/build/languageProcessing/languages/he/config/firstWordExceptions.js.map +1 -1
  525. package/build/languageProcessing/languages/he/config/functionWords.js +4 -11
  526. package/build/languageProcessing/languages/he/config/functionWords.js.map +1 -1
  527. package/build/languageProcessing/languages/he/config/internal/regularRootsHufal.js +1 -7
  528. package/build/languageProcessing/languages/he/config/internal/regularRootsHufal.js.map +1 -1
  529. package/build/languageProcessing/languages/he/config/internal/regularRootsNifal.js +1 -7
  530. package/build/languageProcessing/languages/he/config/internal/regularRootsNifal.js.map +1 -1
  531. package/build/languageProcessing/languages/he/config/internal/regularRootsPual.js +1 -7
  532. package/build/languageProcessing/languages/he/config/internal/regularRootsPual.js.map +1 -1
  533. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js +1 -7
  534. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js.map +1 -1
  535. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js +1 -7
  536. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js.map +1 -1
  537. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js +1 -7
  538. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js.map +1 -1
  539. package/build/languageProcessing/languages/he/config/prefixedFunctionWords.js +2 -8
  540. package/build/languageProcessing/languages/he/config/prefixedFunctionWords.js.map +1 -1
  541. package/build/languageProcessing/languages/he/config/sentenceLength.js +1 -7
  542. package/build/languageProcessing/languages/he/config/sentenceLength.js.map +1 -1
  543. package/build/languageProcessing/languages/he/config/transitionWords.js +4 -10
  544. package/build/languageProcessing/languages/he/config/transitionWords.js.map +1 -1
  545. package/build/languageProcessing/languages/he/config/twoPartTransitionWords.js +2 -7
  546. package/build/languageProcessing/languages/he/config/twoPartTransitionWords.js.map +1 -1
  547. package/build/languageProcessing/languages/he/helpers/createBasicWordForms.js +6 -11
  548. package/build/languageProcessing/languages/he/helpers/createBasicWordForms.js.map +1 -1
  549. package/build/languageProcessing/languages/he/helpers/getStemmer.js +8 -14
  550. package/build/languageProcessing/languages/he/helpers/getStemmer.js.map +1 -1
  551. package/build/languageProcessing/languages/he/helpers/internal/stem.js +1 -7
  552. package/build/languageProcessing/languages/he/helpers/internal/stem.js.map +1 -1
  553. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js +10 -16
  554. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js.map +1 -1
  555. package/build/languageProcessing/languages/he/helpers/stem.js +1 -7
  556. package/build/languageProcessing/languages/he/helpers/stem.js.map +1 -1
  557. package/build/languageProcessing/languages/hu/Researcher.js +19 -27
  558. package/build/languageProcessing/languages/hu/Researcher.js.map +1 -1
  559. package/build/languageProcessing/languages/hu/config/firstWordExceptions.js +1 -7
  560. package/build/languageProcessing/languages/hu/config/firstWordExceptions.js.map +1 -1
  561. package/build/languageProcessing/languages/hu/config/functionWords.js +4 -10
  562. package/build/languageProcessing/languages/hu/config/functionWords.js.map +1 -1
  563. package/build/languageProcessing/languages/hu/config/internal/auxiliaries.js +1 -7
  564. package/build/languageProcessing/languages/hu/config/internal/auxiliaries.js.map +1 -1
  565. package/build/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js +3 -9
  566. package/build/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js.map +1 -1
  567. package/build/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js +2 -7
  568. package/build/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js.map +1 -1
  569. package/build/languageProcessing/languages/hu/config/internal/odikVerbs.js +1 -7
  570. package/build/languageProcessing/languages/hu/config/internal/odikVerbs.js.map +1 -1
  571. package/build/languageProcessing/languages/hu/config/internal/participles.js +2 -7
  572. package/build/languageProcessing/languages/hu/config/internal/participles.js.map +1 -1
  573. package/build/languageProcessing/languages/hu/config/stopWords.js +2 -7
  574. package/build/languageProcessing/languages/hu/config/stopWords.js.map +1 -1
  575. package/build/languageProcessing/languages/hu/config/transitionWords.js +4 -10
  576. package/build/languageProcessing/languages/hu/config/transitionWords.js.map +1 -1
  577. package/build/languageProcessing/languages/hu/config/twoPartTransitionWords.js +2 -7
  578. package/build/languageProcessing/languages/hu/config/twoPartTransitionWords.js.map +1 -1
  579. package/build/languageProcessing/languages/hu/helpers/getClauses.js +9 -16
  580. package/build/languageProcessing/languages/hu/helpers/getClauses.js.map +1 -1
  581. package/build/languageProcessing/languages/hu/helpers/getStemmer.js +8 -14
  582. package/build/languageProcessing/languages/hu/helpers/getStemmer.js.map +1 -1
  583. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js +6 -12
  584. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js.map +1 -1
  585. package/build/languageProcessing/languages/hu/helpers/internal/stem.js +1 -7
  586. package/build/languageProcessing/languages/hu/helpers/internal/stem.js.map +1 -1
  587. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js +9 -15
  588. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js.map +1 -1
  589. package/build/languageProcessing/languages/hu/values/Clause.js +8 -14
  590. package/build/languageProcessing/languages/hu/values/Clause.js.map +1 -1
  591. package/build/languageProcessing/languages/id/Researcher.js +17 -25
  592. package/build/languageProcessing/languages/id/Researcher.js.map +1 -1
  593. package/build/languageProcessing/languages/id/config/firstWordExceptions.js +1 -7
  594. package/build/languageProcessing/languages/id/config/firstWordExceptions.js.map +1 -1
  595. package/build/languageProcessing/languages/id/config/functionWords.js +8 -16
  596. package/build/languageProcessing/languages/id/config/functionWords.js.map +1 -1
  597. package/build/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js +1 -7
  598. package/build/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js.map +1 -1
  599. package/build/languageProcessing/languages/id/config/transitionWords.js +4 -10
  600. package/build/languageProcessing/languages/id/config/transitionWords.js.map +1 -1
  601. package/build/languageProcessing/languages/id/config/twoPartTransitionWords.js +2 -7
  602. package/build/languageProcessing/languages/id/config/twoPartTransitionWords.js.map +1 -1
  603. package/build/languageProcessing/languages/id/helpers/getStemmer.js +8 -14
  604. package/build/languageProcessing/languages/id/helpers/getStemmer.js.map +1 -1
  605. package/build/languageProcessing/languages/id/helpers/internal/stem.js +29 -34
  606. package/build/languageProcessing/languages/id/helpers/internal/stem.js.map +1 -1
  607. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js +5 -13
  608. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js.map +1 -1
  609. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js +5 -12
  610. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js.map +1 -1
  611. package/build/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js +3 -9
  612. package/build/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js.map +1 -1
  613. package/build/languageProcessing/languages/it/Researcher.js +23 -31
  614. package/build/languageProcessing/languages/it/Researcher.js.map +1 -1
  615. package/build/languageProcessing/languages/it/config/firstWordExceptions.js +1 -7
  616. package/build/languageProcessing/languages/it/config/firstWordExceptions.js.map +1 -1
  617. package/build/languageProcessing/languages/it/config/functionWords.js +11 -17
  618. package/build/languageProcessing/languages/it/config/functionWords.js.map +1 -1
  619. package/build/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js +1 -7
  620. package/build/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  621. package/build/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js +1 -7
  622. package/build/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js.map +1 -1
  623. package/build/languageProcessing/languages/it/config/sentenceLength.js +1 -7
  624. package/build/languageProcessing/languages/it/config/sentenceLength.js.map +1 -1
  625. package/build/languageProcessing/languages/it/config/stopWords.js +1 -7
  626. package/build/languageProcessing/languages/it/config/stopWords.js.map +1 -1
  627. package/build/languageProcessing/languages/it/config/transitionWords.js +4 -10
  628. package/build/languageProcessing/languages/it/config/transitionWords.js.map +1 -1
  629. package/build/languageProcessing/languages/it/config/twoPartTransitionWords.js +1 -7
  630. package/build/languageProcessing/languages/it/config/twoPartTransitionWords.js.map +1 -1
  631. package/build/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js +3 -9
  632. package/build/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js.map +1 -1
  633. package/build/languageProcessing/languages/it/helpers/getClauses.js +10 -17
  634. package/build/languageProcessing/languages/it/helpers/getClauses.js.map +1 -1
  635. package/build/languageProcessing/languages/it/helpers/getStemmer.js +8 -14
  636. package/build/languageProcessing/languages/it/helpers/getStemmer.js.map +1 -1
  637. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js +6 -12
  638. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js.map +1 -1
  639. package/build/languageProcessing/languages/it/helpers/internal/stem.js +3 -9
  640. package/build/languageProcessing/languages/it/helpers/internal/stem.js.map +1 -1
  641. package/build/languageProcessing/languages/it/values/Clause.js +7 -14
  642. package/build/languageProcessing/languages/it/values/Clause.js.map +1 -1
  643. package/build/languageProcessing/languages/ja/Researcher.js +51 -59
  644. package/build/languageProcessing/languages/ja/Researcher.js.map +1 -1
  645. package/build/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js +1 -7
  646. package/build/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js.map +1 -1
  647. package/build/languageProcessing/languages/ja/config/firstWordExceptions.js +1 -7
  648. package/build/languageProcessing/languages/ja/config/firstWordExceptions.js.map +1 -1
  649. package/build/languageProcessing/languages/ja/config/functionWords.js +1 -7
  650. package/build/languageProcessing/languages/ja/config/functionWords.js.map +1 -1
  651. package/build/languageProcessing/languages/ja/config/keyphraseLength.js +1 -7
  652. package/build/languageProcessing/languages/ja/config/keyphraseLength.js.map +1 -1
  653. package/build/languageProcessing/languages/ja/config/metaDescriptionLength.js +1 -7
  654. package/build/languageProcessing/languages/ja/config/metaDescriptionLength.js.map +1 -1
  655. package/build/languageProcessing/languages/ja/config/paragraphLength.js +1 -7
  656. package/build/languageProcessing/languages/ja/config/paragraphLength.js.map +1 -1
  657. package/build/languageProcessing/languages/ja/config/sentenceLength.js +1 -7
  658. package/build/languageProcessing/languages/ja/config/sentenceLength.js.map +1 -1
  659. package/build/languageProcessing/languages/ja/config/subheadingsTooLong.js +1 -7
  660. package/build/languageProcessing/languages/ja/config/subheadingsTooLong.js.map +1 -1
  661. package/build/languageProcessing/languages/ja/config/textLength.js +1 -7
  662. package/build/languageProcessing/languages/ja/config/textLength.js.map +1 -1
  663. package/build/languageProcessing/languages/ja/config/topicLength.js +1 -7
  664. package/build/languageProcessing/languages/ja/config/topicLength.js.map +1 -1
  665. package/build/languageProcessing/languages/ja/config/transitionWords.js +2 -7
  666. package/build/languageProcessing/languages/ja/config/transitionWords.js.map +1 -1
  667. package/build/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js +16 -22
  668. package/build/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js.map +1 -1
  669. package/build/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js +5 -11
  670. package/build/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js.map +1 -1
  671. package/build/languageProcessing/languages/ja/customResearches/getWordForms.js +11 -17
  672. package/build/languageProcessing/languages/ja/customResearches/getWordForms.js.map +1 -1
  673. package/build/languageProcessing/languages/ja/customResearches/textLength.js +3 -9
  674. package/build/languageProcessing/languages/ja/customResearches/textLength.js.map +1 -1
  675. package/build/languageProcessing/languages/ja/helpers/countCharacters.js +6 -12
  676. package/build/languageProcessing/languages/ja/helpers/countCharacters.js.map +1 -1
  677. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js +8 -14
  678. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js.map +1 -1
  679. package/build/languageProcessing/languages/ja/helpers/getContentWords.js +5 -11
  680. package/build/languageProcessing/languages/ja/helpers/getContentWords.js.map +1 -1
  681. package/build/languageProcessing/languages/ja/helpers/getWords.js +8 -15
  682. package/build/languageProcessing/languages/ja/helpers/getWords.js.map +1 -1
  683. package/build/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js +6 -13
  684. package/build/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js.map +1 -1
  685. package/build/languageProcessing/languages/ja/helpers/internal/createWordForms.js +4 -9
  686. package/build/languageProcessing/languages/ja/helpers/internal/createWordForms.js.map +1 -1
  687. package/build/languageProcessing/languages/ja/helpers/internal/determineStem.js +3 -9
  688. package/build/languageProcessing/languages/ja/helpers/internal/determineStem.js.map +1 -1
  689. package/build/languageProcessing/languages/ja/helpers/matchTextWithWord.js +7 -13
  690. package/build/languageProcessing/languages/ja/helpers/matchTextWithWord.js.map +1 -1
  691. package/build/languageProcessing/languages/ja/helpers/matchTransitionWords.js +3 -9
  692. package/build/languageProcessing/languages/ja/helpers/matchTransitionWords.js.map +1 -1
  693. package/build/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js +4 -10
  694. package/build/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js.map +1 -1
  695. package/build/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js +5 -11
  696. package/build/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js.map +1 -1
  697. package/build/languageProcessing/languages/ja/helpers/wordsCharacterCount.js +1 -7
  698. package/build/languageProcessing/languages/ja/helpers/wordsCharacterCount.js.map +1 -1
  699. package/build/languageProcessing/languages/nb/Researcher.js +17 -25
  700. package/build/languageProcessing/languages/nb/Researcher.js.map +1 -1
  701. package/build/languageProcessing/languages/nb/config/firstWordExceptions.js +1 -7
  702. package/build/languageProcessing/languages/nb/config/firstWordExceptions.js.map +1 -1
  703. package/build/languageProcessing/languages/nb/config/functionWords.js +5 -11
  704. package/build/languageProcessing/languages/nb/config/functionWords.js.map +1 -1
  705. package/build/languageProcessing/languages/nb/config/internal/participles.js +2 -7
  706. package/build/languageProcessing/languages/nb/config/internal/participles.js.map +1 -1
  707. package/build/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js +1 -7
  708. package/build/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  709. package/build/languageProcessing/languages/nb/config/stopWords.js +1 -7
  710. package/build/languageProcessing/languages/nb/config/stopWords.js.map +1 -1
  711. package/build/languageProcessing/languages/nb/config/transitionWords.js +4 -10
  712. package/build/languageProcessing/languages/nb/config/transitionWords.js.map +1 -1
  713. package/build/languageProcessing/languages/nb/config/twoPartTransitionWords.js +2 -7
  714. package/build/languageProcessing/languages/nb/config/twoPartTransitionWords.js.map +1 -1
  715. package/build/languageProcessing/languages/nb/helpers/getClauses.js +11 -18
  716. package/build/languageProcessing/languages/nb/helpers/getClauses.js.map +1 -1
  717. package/build/languageProcessing/languages/nb/helpers/getStemmer.js +8 -14
  718. package/build/languageProcessing/languages/nb/helpers/getStemmer.js.map +1 -1
  719. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js +8 -14
  720. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js.map +1 -1
  721. package/build/languageProcessing/languages/nb/helpers/internal/stem.js +1 -7
  722. package/build/languageProcessing/languages/nb/helpers/internal/stem.js.map +1 -1
  723. package/build/languageProcessing/languages/nb/values/Clause.js +8 -14
  724. package/build/languageProcessing/languages/nb/values/Clause.js.map +1 -1
  725. package/build/languageProcessing/languages/nl/Researcher.js +23 -31
  726. package/build/languageProcessing/languages/nl/Researcher.js.map +1 -1
  727. package/build/languageProcessing/languages/nl/config/firstWordExceptions.js +1 -7
  728. package/build/languageProcessing/languages/nl/config/firstWordExceptions.js.map +1 -1
  729. package/build/languageProcessing/languages/nl/config/functionWords.js +10 -16
  730. package/build/languageProcessing/languages/nl/config/functionWords.js.map +1 -1
  731. package/build/languageProcessing/languages/nl/config/internal/nonParticiples.js +1 -7
  732. package/build/languageProcessing/languages/nl/config/internal/nonParticiples.js.map +1 -1
  733. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js +1 -7
  734. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  735. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js +1 -7
  736. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js.map +1 -1
  737. package/build/languageProcessing/languages/nl/config/keyphraseLength.js +1 -7
  738. package/build/languageProcessing/languages/nl/config/keyphraseLength.js.map +1 -1
  739. package/build/languageProcessing/languages/nl/config/stopWords.js +1 -7
  740. package/build/languageProcessing/languages/nl/config/stopWords.js.map +1 -1
  741. package/build/languageProcessing/languages/nl/config/transitionWords.js +4 -10
  742. package/build/languageProcessing/languages/nl/config/transitionWords.js.map +1 -1
  743. package/build/languageProcessing/languages/nl/config/twoPartTransitionWords.js +1 -7
  744. package/build/languageProcessing/languages/nl/config/twoPartTransitionWords.js.map +1 -1
  745. package/build/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js +3 -9
  746. package/build/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js.map +1 -1
  747. package/build/languageProcessing/languages/nl/helpers/getClauses.js +9 -16
  748. package/build/languageProcessing/languages/nl/helpers/getClauses.js.map +1 -1
  749. package/build/languageProcessing/languages/nl/helpers/getStemmer.js +8 -14
  750. package/build/languageProcessing/languages/nl/helpers/getStemmer.js.map +1 -1
  751. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +7 -13
  752. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js.map +1 -1
  753. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +8 -14
  754. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js.map +1 -1
  755. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js +10 -15
  756. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js.map +1 -1
  757. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js +10 -16
  758. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js.map +1 -1
  759. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js +7 -13
  760. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js.map +1 -1
  761. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +7 -12
  762. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js.map +1 -1
  763. package/build/languageProcessing/languages/nl/helpers/internal/stem.js +17 -23
  764. package/build/languageProcessing/languages/nl/helpers/internal/stem.js.map +1 -1
  765. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +4 -11
  766. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js.map +1 -1
  767. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +8 -14
  768. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js.map +1 -1
  769. package/build/languageProcessing/languages/nl/values/Clause.js +10 -16
  770. package/build/languageProcessing/languages/nl/values/Clause.js.map +1 -1
  771. package/build/languageProcessing/languages/pl/Researcher.js +19 -27
  772. package/build/languageProcessing/languages/pl/Researcher.js.map +1 -1
  773. package/build/languageProcessing/languages/pl/config/firstWordExceptions.js +1 -7
  774. package/build/languageProcessing/languages/pl/config/firstWordExceptions.js.map +1 -1
  775. package/build/languageProcessing/languages/pl/config/functionWords.js +9 -16
  776. package/build/languageProcessing/languages/pl/config/functionWords.js.map +1 -1
  777. package/build/languageProcessing/languages/pl/config/internal/auxiliaries.js +1 -7
  778. package/build/languageProcessing/languages/pl/config/internal/auxiliaries.js.map +1 -1
  779. package/build/languageProcessing/languages/pl/config/internal/participles.js +1 -7
  780. package/build/languageProcessing/languages/pl/config/internal/participles.js.map +1 -1
  781. package/build/languageProcessing/languages/pl/config/sentenceLength.js +1 -7
  782. package/build/languageProcessing/languages/pl/config/sentenceLength.js.map +1 -1
  783. package/build/languageProcessing/languages/pl/config/stopWords.js +1 -7
  784. package/build/languageProcessing/languages/pl/config/stopWords.js.map +1 -1
  785. package/build/languageProcessing/languages/pl/config/transitionWords.js +4 -10
  786. package/build/languageProcessing/languages/pl/config/transitionWords.js.map +1 -1
  787. package/build/languageProcessing/languages/pl/config/twoPartTransitionWords.js +2 -7
  788. package/build/languageProcessing/languages/pl/config/twoPartTransitionWords.js.map +1 -1
  789. package/build/languageProcessing/languages/pl/helpers/getClauses.js +9 -16
  790. package/build/languageProcessing/languages/pl/helpers/getClauses.js.map +1 -1
  791. package/build/languageProcessing/languages/pl/helpers/getStemmer.js +8 -14
  792. package/build/languageProcessing/languages/pl/helpers/getStemmer.js.map +1 -1
  793. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js +7 -13
  794. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js.map +1 -1
  795. package/build/languageProcessing/languages/pl/helpers/internal/stem.js +1 -7
  796. package/build/languageProcessing/languages/pl/helpers/internal/stem.js.map +1 -1
  797. package/build/languageProcessing/languages/pl/values/Clause.js +8 -14
  798. package/build/languageProcessing/languages/pl/values/Clause.js.map +1 -1
  799. package/build/languageProcessing/languages/pt/Researcher.js +23 -31
  800. package/build/languageProcessing/languages/pt/Researcher.js.map +1 -1
  801. package/build/languageProcessing/languages/pt/config/firstWordExceptions.js +1 -7
  802. package/build/languageProcessing/languages/pt/config/firstWordExceptions.js.map +1 -1
  803. package/build/languageProcessing/languages/pt/config/functionWords.js +10 -16
  804. package/build/languageProcessing/languages/pt/config/functionWords.js.map +1 -1
  805. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js +1 -7
  806. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  807. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js +1 -7
  808. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js.map +1 -1
  809. package/build/languageProcessing/languages/pt/config/sentenceLength.js +1 -7
  810. package/build/languageProcessing/languages/pt/config/sentenceLength.js.map +1 -1
  811. package/build/languageProcessing/languages/pt/config/stopWords.js +1 -7
  812. package/build/languageProcessing/languages/pt/config/stopWords.js.map +1 -1
  813. package/build/languageProcessing/languages/pt/config/transitionWords.js +4 -10
  814. package/build/languageProcessing/languages/pt/config/transitionWords.js.map +1 -1
  815. package/build/languageProcessing/languages/pt/config/twoPartTransitionWords.js +1 -7
  816. package/build/languageProcessing/languages/pt/config/twoPartTransitionWords.js.map +1 -1
  817. package/build/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js +3 -9
  818. package/build/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js.map +1 -1
  819. package/build/languageProcessing/languages/pt/helpers/getClauses.js +10 -17
  820. package/build/languageProcessing/languages/pt/helpers/getClauses.js.map +1 -1
  821. package/build/languageProcessing/languages/pt/helpers/getStemmer.js +8 -14
  822. package/build/languageProcessing/languages/pt/helpers/getStemmer.js.map +1 -1
  823. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js +6 -12
  824. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js.map +1 -1
  825. package/build/languageProcessing/languages/pt/helpers/internal/stem.js +3 -9
  826. package/build/languageProcessing/languages/pt/helpers/internal/stem.js.map +1 -1
  827. package/build/languageProcessing/languages/pt/values/Clause.js +7 -14
  828. package/build/languageProcessing/languages/pt/values/Clause.js.map +1 -1
  829. package/build/languageProcessing/languages/ru/Researcher.js +23 -31
  830. package/build/languageProcessing/languages/ru/Researcher.js.map +1 -1
  831. package/build/languageProcessing/languages/ru/config/firstWordExceptions.js +1 -7
  832. package/build/languageProcessing/languages/ru/config/firstWordExceptions.js.map +1 -1
  833. package/build/languageProcessing/languages/ru/config/fleschReadingEaseScores.js +1 -7
  834. package/build/languageProcessing/languages/ru/config/fleschReadingEaseScores.js.map +1 -1
  835. package/build/languageProcessing/languages/ru/config/functionWords.js +8 -14
  836. package/build/languageProcessing/languages/ru/config/functionWords.js.map +1 -1
  837. package/build/languageProcessing/languages/ru/config/internal/participlesShortenedList.js +2 -8
  838. package/build/languageProcessing/languages/ru/config/internal/participlesShortenedList.js.map +1 -1
  839. package/build/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js +1 -7
  840. package/build/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js.map +1 -1
  841. package/build/languageProcessing/languages/ru/config/sentenceLength.js +1 -7
  842. package/build/languageProcessing/languages/ru/config/sentenceLength.js.map +1 -1
  843. package/build/languageProcessing/languages/ru/config/transitionWords.js +4 -10
  844. package/build/languageProcessing/languages/ru/config/transitionWords.js.map +1 -1
  845. package/build/languageProcessing/languages/ru/config/twoPartTransitionWords.js +2 -7
  846. package/build/languageProcessing/languages/ru/config/twoPartTransitionWords.js.map +1 -1
  847. package/build/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js +3 -9
  848. package/build/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js.map +1 -1
  849. package/build/languageProcessing/languages/ru/helpers/getStemmer.js +8 -14
  850. package/build/languageProcessing/languages/ru/helpers/getStemmer.js.map +1 -1
  851. package/build/languageProcessing/languages/ru/helpers/internal/stem.js +1 -7
  852. package/build/languageProcessing/languages/ru/helpers/internal/stem.js.map +1 -1
  853. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js +6 -12
  854. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js.map +1 -1
  855. package/build/languageProcessing/languages/sk/Researcher.js +17 -25
  856. package/build/languageProcessing/languages/sk/Researcher.js.map +1 -1
  857. package/build/languageProcessing/languages/sk/config/firstWordExceptions.js +1 -7
  858. package/build/languageProcessing/languages/sk/config/firstWordExceptions.js.map +1 -1
  859. package/build/languageProcessing/languages/sk/config/functionWords.js +5 -11
  860. package/build/languageProcessing/languages/sk/config/functionWords.js.map +1 -1
  861. package/build/languageProcessing/languages/sk/config/internal/nonPassives.js +1 -7
  862. package/build/languageProcessing/languages/sk/config/internal/nonPassives.js.map +1 -1
  863. package/build/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js +2 -8
  864. package/build/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js.map +1 -1
  865. package/build/languageProcessing/languages/sk/config/stopWords.js +1 -7
  866. package/build/languageProcessing/languages/sk/config/stopWords.js.map +1 -1
  867. package/build/languageProcessing/languages/sk/config/transitionWords.js +4 -10
  868. package/build/languageProcessing/languages/sk/config/transitionWords.js.map +1 -1
  869. package/build/languageProcessing/languages/sk/config/twoPartTransitionWords.js +2 -7
  870. package/build/languageProcessing/languages/sk/config/twoPartTransitionWords.js.map +1 -1
  871. package/build/languageProcessing/languages/sk/helpers/getClauses.js +9 -16
  872. package/build/languageProcessing/languages/sk/helpers/getClauses.js.map +1 -1
  873. package/build/languageProcessing/languages/sk/helpers/getStemmer.js +8 -14
  874. package/build/languageProcessing/languages/sk/helpers/getStemmer.js.map +1 -1
  875. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js +3 -9
  876. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js.map +1 -1
  877. package/build/languageProcessing/languages/sk/helpers/internal/stem.js +1 -7
  878. package/build/languageProcessing/languages/sk/helpers/internal/stem.js.map +1 -1
  879. package/build/languageProcessing/languages/sk/values/Clause.js +8 -14
  880. package/build/languageProcessing/languages/sk/values/Clause.js.map +1 -1
  881. package/build/languageProcessing/languages/sv/Researcher.js +17 -25
  882. package/build/languageProcessing/languages/sv/Researcher.js.map +1 -1
  883. package/build/languageProcessing/languages/sv/config/firstWordExceptions.js +1 -7
  884. package/build/languageProcessing/languages/sv/config/firstWordExceptions.js.map +1 -1
  885. package/build/languageProcessing/languages/sv/config/functionWords.js +7 -13
  886. package/build/languageProcessing/languages/sv/config/functionWords.js.map +1 -1
  887. package/build/languageProcessing/languages/sv/config/internal/passiveVerbs.js +2 -7
  888. package/build/languageProcessing/languages/sv/config/internal/passiveVerbs.js.map +1 -1
  889. package/build/languageProcessing/languages/sv/config/keyphraseLength.js +1 -7
  890. package/build/languageProcessing/languages/sv/config/keyphraseLength.js.map +1 -1
  891. package/build/languageProcessing/languages/sv/config/transitionWords.js +4 -10
  892. package/build/languageProcessing/languages/sv/config/transitionWords.js.map +1 -1
  893. package/build/languageProcessing/languages/sv/config/twoPartTransitionWords.js +2 -7
  894. package/build/languageProcessing/languages/sv/config/twoPartTransitionWords.js.map +1 -1
  895. package/build/languageProcessing/languages/sv/helpers/getStemmer.js +8 -14
  896. package/build/languageProcessing/languages/sv/helpers/getStemmer.js.map +1 -1
  897. package/build/languageProcessing/languages/sv/helpers/internal/stem.js +1 -7
  898. package/build/languageProcessing/languages/sv/helpers/internal/stem.js.map +1 -1
  899. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js +6 -12
  900. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js.map +1 -1
  901. package/build/languageProcessing/languages/tr/Researcher.js +17 -25
  902. package/build/languageProcessing/languages/tr/Researcher.js.map +1 -1
  903. package/build/languageProcessing/languages/tr/config/firstWordExceptions.js +1 -7
  904. package/build/languageProcessing/languages/tr/config/firstWordExceptions.js.map +1 -1
  905. package/build/languageProcessing/languages/tr/config/functionWords.js +4 -10
  906. package/build/languageProcessing/languages/tr/config/functionWords.js.map +1 -1
  907. package/build/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js +3 -8
  908. package/build/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js.map +1 -1
  909. package/build/languageProcessing/languages/tr/config/internal/passiveEndings.js +1 -7
  910. package/build/languageProcessing/languages/tr/config/internal/passiveEndings.js.map +1 -1
  911. package/build/languageProcessing/languages/tr/config/sentenceLength.js +1 -7
  912. package/build/languageProcessing/languages/tr/config/sentenceLength.js.map +1 -1
  913. package/build/languageProcessing/languages/tr/config/transitionWords.js +4 -10
  914. package/build/languageProcessing/languages/tr/config/transitionWords.js.map +1 -1
  915. package/build/languageProcessing/languages/tr/config/twoPartTransitionWords.js +2 -7
  916. package/build/languageProcessing/languages/tr/config/twoPartTransitionWords.js.map +1 -1
  917. package/build/languageProcessing/languages/tr/helpers/getStemmer.js +8 -14
  918. package/build/languageProcessing/languages/tr/helpers/getStemmer.js.map +1 -1
  919. package/build/languageProcessing/languages/tr/helpers/internal/stem.js +3 -9
  920. package/build/languageProcessing/languages/tr/helpers/internal/stem.js.map +1 -1
  921. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js +9 -15
  922. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js.map +1 -1
  923. package/build/languageProcessing/researches/altTagCount.js +10 -16
  924. package/build/languageProcessing/researches/altTagCount.js.map +1 -1
  925. package/build/languageProcessing/researches/checkRelatedKeywords.js +72 -0
  926. package/build/languageProcessing/researches/checkRelatedKeywords.js.map +1 -0
  927. package/build/languageProcessing/researches/countSentencesFromText.js +9 -15
  928. package/build/languageProcessing/researches/countSentencesFromText.js.map +1 -1
  929. package/build/languageProcessing/researches/findKeyphraseInSEOTitle.js +19 -26
  930. package/build/languageProcessing/researches/findKeyphraseInSEOTitle.js.map +1 -1
  931. package/build/languageProcessing/researches/findKeywordInFirstParagraph.js +17 -23
  932. package/build/languageProcessing/researches/findKeywordInFirstParagraph.js.map +1 -1
  933. package/build/languageProcessing/researches/findTransitionWords.js +16 -23
  934. package/build/languageProcessing/researches/findTransitionWords.js.map +1 -1
  935. package/build/languageProcessing/researches/functionWordsInKeyphrase.js +10 -16
  936. package/build/languageProcessing/researches/functionWordsInKeyphrase.js.map +1 -1
  937. package/build/languageProcessing/researches/getAnchorsWithKeyphrase.js +21 -28
  938. package/build/languageProcessing/researches/getAnchorsWithKeyphrase.js.map +1 -1
  939. package/build/languageProcessing/researches/getFleschReadingScore.js +18 -25
  940. package/build/languageProcessing/researches/getFleschReadingScore.js.map +1 -1
  941. package/build/languageProcessing/researches/getKeywordDensity.js +7 -14
  942. package/build/languageProcessing/researches/getKeywordDensity.js.map +1 -1
  943. package/build/languageProcessing/researches/getLinkStatistics.js +7 -13
  944. package/build/languageProcessing/researches/getLinkStatistics.js.map +1 -1
  945. package/build/languageProcessing/researches/getLinks.js +7 -13
  946. package/build/languageProcessing/researches/getLinks.js.map +1 -1
  947. package/build/languageProcessing/researches/getLongCenterAlignedTexts.js +1 -7
  948. package/build/languageProcessing/researches/getLongCenterAlignedTexts.js.map +1 -1
  949. package/build/languageProcessing/researches/getParagraphLength.js +15 -21
  950. package/build/languageProcessing/researches/getParagraphLength.js.map +1 -1
  951. package/build/languageProcessing/researches/getParagraphs.js +4 -9
  952. package/build/languageProcessing/researches/getParagraphs.js.map +1 -1
  953. package/build/languageProcessing/researches/getPassiveVoiceResult.js +21 -30
  954. package/build/languageProcessing/researches/getPassiveVoiceResult.js.map +1 -1
  955. package/build/languageProcessing/researches/getProminentWordsForInsights.js +12 -18
  956. package/build/languageProcessing/researches/getProminentWordsForInsights.js.map +1 -1
  957. package/build/languageProcessing/researches/getProminentWordsForInternalLinking.js +20 -26
  958. package/build/languageProcessing/researches/getProminentWordsForInternalLinking.js.map +1 -1
  959. package/build/languageProcessing/researches/getSentenceBeginnings.js +30 -36
  960. package/build/languageProcessing/researches/getSentenceBeginnings.js.map +1 -1
  961. package/build/languageProcessing/researches/getSubheadingTextLengths.js +12 -18
  962. package/build/languageProcessing/researches/getSubheadingTextLengths.js.map +1 -1
  963. package/build/languageProcessing/researches/getWordForms.js +13 -19
  964. package/build/languageProcessing/researches/getWordForms.js.map +1 -1
  965. package/build/languageProcessing/researches/h1s.js +1 -7
  966. package/build/languageProcessing/researches/h1s.js.map +1 -1
  967. package/build/languageProcessing/researches/imageCount.js +4 -10
  968. package/build/languageProcessing/researches/imageCount.js.map +1 -1
  969. package/build/languageProcessing/researches/index.js +4 -27
  970. package/build/languageProcessing/researches/index.js.map +1 -1
  971. package/build/languageProcessing/researches/keyphraseDistribution.js +22 -32
  972. package/build/languageProcessing/researches/keyphraseDistribution.js.map +1 -1
  973. package/build/languageProcessing/researches/keyphraseLength.js +1 -7
  974. package/build/languageProcessing/researches/keyphraseLength.js.map +1 -1
  975. package/build/languageProcessing/researches/keywordCount.js +30 -39
  976. package/build/languageProcessing/researches/keywordCount.js.map +1 -1
  977. package/build/languageProcessing/researches/keywordCountInUrl.js +8 -16
  978. package/build/languageProcessing/researches/keywordCountInUrl.js.map +1 -1
  979. package/build/languageProcessing/researches/matchKeywordInSubheadings.js +15 -20
  980. package/build/languageProcessing/researches/matchKeywordInSubheadings.js.map +1 -1
  981. package/build/languageProcessing/researches/metaDescriptionKeyword.js +6 -12
  982. package/build/languageProcessing/researches/metaDescriptionKeyword.js.map +1 -1
  983. package/build/languageProcessing/researches/metaDescriptionLength.js +3 -9
  984. package/build/languageProcessing/researches/metaDescriptionLength.js.map +1 -1
  985. package/build/languageProcessing/researches/pageTitleWidth.js +1 -7
  986. package/build/languageProcessing/researches/pageTitleWidth.js.map +1 -1
  987. package/build/languageProcessing/researches/readingTime.js +7 -13
  988. package/build/languageProcessing/researches/readingTime.js.map +1 -1
  989. package/build/languageProcessing/researches/sentences.js +7 -13
  990. package/build/languageProcessing/researches/sentences.js.map +1 -1
  991. package/build/languageProcessing/researches/videoCount.js +1 -7
  992. package/build/languageProcessing/researches/videoCount.js.map +1 -1
  993. package/build/languageProcessing/researches/wordComplexity.js +15 -21
  994. package/build/languageProcessing/researches/wordComplexity.js.map +1 -1
  995. package/build/languageProcessing/researches/wordCountInText.js +10 -15
  996. package/build/languageProcessing/researches/wordCountInText.js.map +1 -1
  997. package/build/languageProcessing/values/Clause.js +1 -7
  998. package/build/languageProcessing/values/Clause.js.map +1 -1
  999. package/build/languageProcessing/values/ProminentWord.js +1 -7
  1000. package/build/languageProcessing/values/ProminentWord.js.map +1 -1
  1001. package/build/languageProcessing/values/Sentence.js +1 -7
  1002. package/build/languageProcessing/values/Sentence.js.map +1 -1
  1003. package/build/languageProcessing/values/index.js +4 -27
  1004. package/build/languageProcessing/values/index.js.map +1 -1
  1005. package/build/markers/addMark.js +1 -7
  1006. package/build/markers/addMark.js.map +1 -1
  1007. package/build/markers/addMarkSingleWord.js +7 -12
  1008. package/build/markers/addMarkSingleWord.js.map +1 -1
  1009. package/build/markers/index.js +3 -20
  1010. package/build/markers/index.js.map +1 -1
  1011. package/build/markers/removeDuplicateMarks.js +3 -8
  1012. package/build/markers/removeDuplicateMarks.js.map +1 -1
  1013. package/build/markers/removeMarks.js +1 -7
  1014. package/build/markers/removeMarks.js.map +1 -1
  1015. package/build/parse/build/build.js +17 -25
  1016. package/build/parse/build/build.js.map +1 -1
  1017. package/build/parse/build/index.js +7 -12
  1018. package/build/parse/build/index.js.map +1 -1
  1019. package/build/parse/build/private/adapt.js +15 -21
  1020. package/build/parse/build/private/adapt.js.map +1 -1
  1021. package/build/parse/build/private/adaptAttributes.js +3 -9
  1022. package/build/parse/build/private/adaptAttributes.js.map +1 -1
  1023. package/build/parse/build/private/alwaysFilterElements.js +9 -14
  1024. package/build/parse/build/private/alwaysFilterElements.js.map +1 -1
  1025. package/build/parse/build/private/combineIntoImplicitParagraphs.js +12 -18
  1026. package/build/parse/build/private/combineIntoImplicitParagraphs.js.map +1 -1
  1027. package/build/parse/build/private/filterBeforeTokenizing.js +5 -10
  1028. package/build/parse/build/private/filterBeforeTokenizing.js.map +1 -1
  1029. package/build/parse/build/private/filterHelpers.js +3 -11
  1030. package/build/parse/build/private/filterHelpers.js.map +1 -1
  1031. package/build/parse/build/private/filterTree.js +3 -8
  1032. package/build/parse/build/private/filterTree.js.map +1 -1
  1033. package/build/parse/build/private/getTextElementPositions.js +5 -10
  1034. package/build/parse/build/private/getTextElementPositions.js.map +1 -1
  1035. package/build/parse/build/private/helpers/parseClassAttribute.js +1 -7
  1036. package/build/parse/build/private/helpers/parseClassAttribute.js.map +1 -1
  1037. package/build/parse/build/private/isPhrasingContent.js +1 -7
  1038. package/build/parse/build/private/isPhrasingContent.js.map +1 -1
  1039. package/build/parse/build/private/parseBlocks.js +4 -11
  1040. package/build/parse/build/private/parseBlocks.js.map +1 -1
  1041. package/build/parse/build/private/tokenize.js +8 -14
  1042. package/build/parse/build/private/tokenize.js.map +1 -1
  1043. package/build/parse/language/LanguageProcessor.js +8 -15
  1044. package/build/parse/language/LanguageProcessor.js.map +1 -1
  1045. package/build/parse/structure/Heading.js +3 -9
  1046. package/build/parse/structure/Heading.js.map +1 -1
  1047. package/build/parse/structure/Node.js +8 -14
  1048. package/build/parse/structure/Node.js.map +1 -1
  1049. package/build/parse/structure/Paragraph.js +3 -9
  1050. package/build/parse/structure/Paragraph.js.map +1 -1
  1051. package/build/parse/structure/Sentence.js +1 -7
  1052. package/build/parse/structure/Sentence.js.map +1 -1
  1053. package/build/parse/structure/SourceCodeLocation.js +1 -7
  1054. package/build/parse/structure/SourceCodeLocation.js.map +1 -1
  1055. package/build/parse/structure/Text.js +3 -10
  1056. package/build/parse/structure/Text.js.map +1 -1
  1057. package/build/parse/structure/Token.js +3 -8
  1058. package/build/parse/structure/Token.js.map +1 -1
  1059. package/build/parse/structure/index.js +10 -33
  1060. package/build/parse/structure/index.js.map +1 -1
  1061. package/build/parse/traverse/findAllInTree.js +1 -7
  1062. package/build/parse/traverse/findAllInTree.js.map +1 -1
  1063. package/build/parse/traverse/index.js +8 -19
  1064. package/build/parse/traverse/index.js.map +1 -1
  1065. package/build/parse/traverse/innerText.js +3 -8
  1066. package/build/parse/traverse/innerText.js.map +1 -1
  1067. package/build/parsedPaper/ParsedPaper.js +1 -8
  1068. package/build/parsedPaper/ParsedPaper.js.map +1 -1
  1069. package/build/parsedPaper/assess/TreeAssessor.js +6 -12
  1070. package/build/parsedPaper/assess/TreeAssessor.js.map +1 -1
  1071. package/build/parsedPaper/assess/assessmentListFactories.js +1 -11
  1072. package/build/parsedPaper/assess/assessmentListFactories.js.map +1 -1
  1073. package/build/parsedPaper/assess/assessments/Assessment.js +15 -9
  1074. package/build/parsedPaper/assess/assessments/Assessment.js.map +1 -1
  1075. package/build/parsedPaper/assess/assessments/index.js +6 -13
  1076. package/build/parsedPaper/assess/assessments/index.js.map +1 -1
  1077. package/build/parsedPaper/assess/assessorFactories.js +16 -24
  1078. package/build/parsedPaper/assess/assessorFactories.js.map +1 -1
  1079. package/build/parsedPaper/assess/cornerstone/assessmentListFactories.js +1 -9
  1080. package/build/parsedPaper/assess/cornerstone/assessmentListFactories.js.map +1 -1
  1081. package/build/parsedPaper/assess/cornerstone/index.js +2 -10
  1082. package/build/parsedPaper/assess/cornerstone/index.js.map +1 -1
  1083. package/build/parsedPaper/assess/index.js +13 -29
  1084. package/build/parsedPaper/assess/index.js.map +1 -1
  1085. package/build/parsedPaper/build/PaperParser.js +5 -11
  1086. package/build/parsedPaper/build/PaperParser.js.map +1 -1
  1087. package/build/parsedPaper/build/linguisticParsing/Sentence.js +1 -7
  1088. package/build/parsedPaper/build/linguisticParsing/Sentence.js.map +1 -1
  1089. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +16 -23
  1090. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js.map +1 -1
  1091. package/build/parsedPaper/build/linguisticParsing/parseText.js +3 -9
  1092. package/build/parsedPaper/build/linguisticParsing/parseText.js.map +1 -1
  1093. package/build/parsedPaper/build/tree/TreeBuilder.js +3 -9
  1094. package/build/parsedPaper/build/tree/TreeBuilder.js.map +1 -1
  1095. package/build/parsedPaper/build/tree/cleanup/calculateTextIndices.js +5 -10
  1096. package/build/parsedPaper/build/tree/cleanup/calculateTextIndices.js.map +1 -1
  1097. package/build/parsedPaper/build/tree/cleanup/getElementContent.js +1 -7
  1098. package/build/parsedPaper/build/tree/cleanup/getElementContent.js.map +1 -1
  1099. package/build/parsedPaper/build/tree/cleanup/postParsing.js +5 -11
  1100. package/build/parsedPaper/build/tree/cleanup/postParsing.js.map +1 -1
  1101. package/build/parsedPaper/build/tree/html/HTMLTreeConverter.js +21 -27
  1102. package/build/parsedPaper/build/tree/html/HTMLTreeConverter.js.map +1 -1
  1103. package/build/parsedPaper/build/tree/html/buildTree.js +7 -13
  1104. package/build/parsedPaper/build/tree/html/buildTree.js.map +1 -1
  1105. package/build/parsedPaper/build/tree/html/htmlConstants.js +4 -9
  1106. package/build/parsedPaper/build/tree/html/htmlConstants.js.map +1 -1
  1107. package/build/parsedPaper/build/tree/index.js +3 -8
  1108. package/build/parsedPaper/build/tree/index.js.map +1 -1
  1109. package/build/parsedPaper/build/tree/metadata/buildTree.js +12 -18
  1110. package/build/parsedPaper/build/tree/metadata/buildTree.js.map +1 -1
  1111. package/build/parsedPaper/research/TreeResearcher.js +4 -9
  1112. package/build/parsedPaper/research/TreeResearcher.js.map +1 -1
  1113. package/build/parsedPaper/research/index.js +10 -12
  1114. package/build/parsedPaper/research/index.js.map +1 -1
  1115. package/build/parsedPaper/research/researches/Headings.js +5 -11
  1116. package/build/parsedPaper/research/researches/Headings.js.map +1 -1
  1117. package/build/parsedPaper/research/researches/LinkStatistics.js +6 -12
  1118. package/build/parsedPaper/research/researches/LinkStatistics.js.map +1 -1
  1119. package/build/parsedPaper/research/researches/Research.js +5 -10
  1120. package/build/parsedPaper/research/researches/Research.js.map +1 -1
  1121. package/build/parsedPaper/research/researches/index.js +1 -13
  1122. package/build/parsedPaper/research/researches/index.js.map +1 -1
  1123. package/build/parsedPaper/structure/tree/FormattingElement.js +3 -9
  1124. package/build/parsedPaper/structure/tree/FormattingElement.js.map +1 -1
  1125. package/build/parsedPaper/structure/tree/SourceCodeLocation.js +1 -7
  1126. package/build/parsedPaper/structure/tree/SourceCodeLocation.js.map +1 -1
  1127. package/build/parsedPaper/structure/tree/TextContainer.js +5 -10
  1128. package/build/parsedPaper/structure/tree/TextContainer.js.map +1 -1
  1129. package/build/parsedPaper/structure/tree/index.js +9 -74
  1130. package/build/parsedPaper/structure/tree/index.js.map +1 -1
  1131. package/build/parsedPaper/structure/tree/nodes/Heading.js +3 -9
  1132. package/build/parsedPaper/structure/tree/nodes/Heading.js.map +1 -1
  1133. package/build/parsedPaper/structure/tree/nodes/LeafNode.js +5 -12
  1134. package/build/parsedPaper/structure/tree/nodes/LeafNode.js.map +1 -1
  1135. package/build/parsedPaper/structure/tree/nodes/List.js +5 -11
  1136. package/build/parsedPaper/structure/tree/nodes/List.js.map +1 -1
  1137. package/build/parsedPaper/structure/tree/nodes/ListItem.js +3 -10
  1138. package/build/parsedPaper/structure/tree/nodes/ListItem.js.map +1 -1
  1139. package/build/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js +3 -9
  1140. package/build/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js.map +1 -1
  1141. package/build/parsedPaper/structure/tree/nodes/MetadataText.js +3 -9
  1142. package/build/parsedPaper/structure/tree/nodes/MetadataText.js.map +1 -1
  1143. package/build/parsedPaper/structure/tree/nodes/Node.js +6 -12
  1144. package/build/parsedPaper/structure/tree/nodes/Node.js.map +1 -1
  1145. package/build/parsedPaper/structure/tree/nodes/Paragraph.js +3 -9
  1146. package/build/parsedPaper/structure/tree/nodes/Paragraph.js.map +1 -1
  1147. package/build/parsedPaper/structure/tree/nodes/StructuredNode.js +3 -10
  1148. package/build/parsedPaper/structure/tree/nodes/StructuredNode.js.map +1 -1
  1149. package/build/parsedPaper/structure/tree/nodes/index.js +10 -69
  1150. package/build/parsedPaper/structure/tree/nodes/index.js.map +1 -1
  1151. package/build/scoring/assessments/assessment.js +17 -15
  1152. package/build/scoring/assessments/assessment.js.map +1 -1
  1153. package/build/scoring/assessments/index.js +53 -56
  1154. package/build/scoring/assessments/index.js.map +1 -1
  1155. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js +30 -47
  1156. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js.map +1 -1
  1157. package/build/scoring/assessments/readability/RelatedKeywordsAssessment.js +98 -0
  1158. package/build/scoring/assessments/readability/RelatedKeywordsAssessment.js.map +1 -0
  1159. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js +22 -35
  1160. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js.map +1 -1
  1161. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js +24 -39
  1162. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js.map +1 -1
  1163. package/build/scoring/assessments/readability/TransitionWordsAssessment.js +29 -47
  1164. package/build/scoring/assessments/readability/TransitionWordsAssessment.js.map +1 -1
  1165. package/build/scoring/assessments/seo/FAQsAssessment.js +162 -0
  1166. package/build/scoring/assessments/seo/FAQsAssessment.js.map +1 -0
  1167. package/build/scoring/assessments/seo/ImageCountAssessment.js +17 -33
  1168. package/build/scoring/assessments/seo/ImageCountAssessment.js.map +1 -1
  1169. package/build/scoring/assessments/seo/InternalLinksAssessment.js +21 -35
  1170. package/build/scoring/assessments/seo/InternalLinksAssessment.js.map +1 -1
  1171. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js +20 -34
  1172. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js.map +1 -1
  1173. package/build/scoring/assessments/seo/KeyphraseAssessment.js +18 -32
  1174. package/build/scoring/assessments/seo/KeyphraseAssessment.js.map +1 -1
  1175. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js +21 -34
  1176. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js.map +1 -1
  1177. package/build/scoring/assessments/seo/KeywordDensityAssessment.js +26 -40
  1178. package/build/scoring/assessments/seo/KeywordDensityAssessment.js.map +1 -1
  1179. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +23 -42
  1180. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js.map +1 -1
  1181. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +19 -34
  1182. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js.map +1 -1
  1183. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js +25 -41
  1184. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js.map +1 -1
  1185. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js +16 -30
  1186. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js.map +1 -1
  1187. package/build/scoring/assessments/seo/OutboundLinksAssessment.js +21 -40
  1188. package/build/scoring/assessments/seo/OutboundLinksAssessment.js.map +1 -1
  1189. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js +17 -31
  1190. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js.map +1 -1
  1191. package/build/scoring/assessments/seo/SchemaAssessment.js +95 -0
  1192. package/build/scoring/assessments/seo/SchemaAssessment.js.map +1 -0
  1193. package/build/scoring/assessments/seo/SingleH1Assessment.js +20 -33
  1194. package/build/scoring/assessments/seo/SingleH1Assessment.js.map +1 -1
  1195. package/build/scoring/assessments/seo/SingleTitleAssessment.js +20 -33
  1196. package/build/scoring/assessments/seo/SingleTitleAssessment.js.map +1 -1
  1197. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +18 -35
  1198. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js.map +1 -1
  1199. package/build/scoring/assessments/seo/TextImagesAssessment.js +20 -36
  1200. package/build/scoring/assessments/seo/TextImagesAssessment.js.map +1 -1
  1201. package/build/scoring/assessments/seo/TextLengthAssessment.js +21 -37
  1202. package/build/scoring/assessments/seo/TextLengthAssessment.js.map +1 -1
  1203. package/build/scoring/assessments/seo/UrlKeywordAssessment.js +20 -36
  1204. package/build/scoring/assessments/seo/UrlKeywordAssessment.js.map +1 -1
  1205. package/build/scoring/assessments/seo/UrlLengthAssessment.js +19 -33
  1206. package/build/scoring/assessments/seo/UrlLengthAssessment.js.map +1 -1
  1207. package/build/scoring/assessors/assessor.js +53 -33
  1208. package/build/scoring/assessors/assessor.js.map +1 -1
  1209. package/build/scoring/assessors/avadaAssessor.js +37 -17
  1210. package/build/scoring/assessors/avadaAssessor.js.map +1 -1
  1211. package/build/scoring/assessors/contentAssessor.js +16 -22
  1212. package/build/scoring/assessors/contentAssessor.js.map +1 -1
  1213. package/build/scoring/assessors/index.js +4 -34
  1214. package/build/scoring/assessors/index.js.map +1 -1
  1215. package/build/scoring/assessors/seoAssessor.js +27 -32
  1216. package/build/scoring/assessors/seoAssessor.js.map +1 -1
  1217. package/build/scoring/helpers/assessments/checkForTooLongSentences.js +3 -8
  1218. package/build/scoring/helpers/assessments/checkForTooLongSentences.js.map +1 -1
  1219. package/build/scoring/helpers/assessments/inRange.js +2 -10
  1220. package/build/scoring/helpers/assessments/inRange.js.map +1 -1
  1221. package/build/scoring/helpers/assessments/keyphraseLengthFactor.js +1 -7
  1222. package/build/scoring/helpers/assessments/keyphraseLengthFactor.js.map +1 -1
  1223. package/build/scoring/helpers/assessments/recommendedKeywordCount.js +5 -11
  1224. package/build/scoring/helpers/assessments/recommendedKeywordCount.js.map +1 -1
  1225. package/build/scoring/helpers/index.js +27 -18
  1226. package/build/scoring/helpers/index.js.map +1 -1
  1227. package/build/scoring/interpreters/index.js +2 -13
  1228. package/build/scoring/interpreters/index.js.map +1 -1
  1229. package/build/scoring/interpreters/scoreToRating.js +1 -7
  1230. package/build/scoring/interpreters/scoreToRating.js.map +1 -1
  1231. package/build/scoring/renderers/AssessorPresenter.js +12 -18
  1232. package/build/scoring/renderers/AssessorPresenter.js.map +1 -1
  1233. package/build/scoring/scoreAggregators/ReadabilityScoreAggregator.js +8 -14
  1234. package/build/scoring/scoreAggregators/ReadabilityScoreAggregator.js.map +1 -1
  1235. package/build/scoring/scoreAggregators/SEOScoreAggregator.js +3 -9
  1236. package/build/scoring/scoreAggregators/SEOScoreAggregator.js.map +1 -1
  1237. package/build/scoring/scoreAggregators/ScoreAggregator.js +1 -7
  1238. package/build/scoring/scoreAggregators/ScoreAggregator.js.map +1 -1
  1239. package/build/scoring/scoreAggregators/index.js +3 -27
  1240. package/build/scoring/scoreAggregators/index.js.map +1 -1
  1241. package/build/values/AssessmentResult.js +31 -57
  1242. package/build/values/AssessmentResult.js.map +1 -1
  1243. package/build/values/Mark.js +9 -15
  1244. package/build/values/Mark.js.map +1 -1
  1245. package/build/values/Paper.js +115 -16
  1246. package/build/values/Paper.js.map +1 -1
  1247. package/build/values/index.js +4 -27
  1248. package/build/values/index.js.map +1 -1
  1249. package/build/vendor/turkishStemmer.js +1 -7
  1250. package/build/vendor/turkishStemmer.js.map +1 -1
  1251. package/package.json +10 -2
  1252. package/build/bundledPlugins/index.js +0 -14
  1253. package/build/bundledPlugins/index.js.map +0 -1
  1254. package/build/bundledPlugins/previouslyUsedKeywords.js +0 -171
  1255. package/build/bundledPlugins/previouslyUsedKeywords.js.map +0 -1
@@ -1,18 +1,12 @@
1
- "use strict";
1
+ import { flattenDeep, max, uniq as unique, zipWith } from "lodash";
2
+ import { findWordFormsInString } from "../helpers/match/findKeywordFormsInString";
3
+ import { markWordsInSentences } from "../helpers/word/markWordsInSentences";
4
+ import getSentences from "../helpers/sentence/getSentences";
5
+ import parseSynonyms from "../helpers/sanitize/parseSynonyms";
6
+ import { mergeListItems } from "../helpers/sanitize/mergeListItems";
7
+ import removeHtmlBlocks from "../helpers/html/htmlParser";
8
+ import { filterShortcodesFromHTML } from "../helpers/sanitize/filterShortcodesFromTree";
2
9
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.maximizeSentenceScores = exports.keyphraseDistributionResearcher = exports.getDistraction = exports.default = exports.computeScoresPerSentenceShortTopic = exports.computeScoresPerSentenceLongTopic = void 0;
7
- var _lodash = require("lodash");
8
- var _findKeywordFormsInString = require("../helpers/match/findKeywordFormsInString");
9
- var _markWordsInSentences = require("../helpers/word/markWordsInSentences");
10
- var _getSentences = _interopRequireDefault(require("../helpers/sentence/getSentences"));
11
- var _parseSynonyms = _interopRequireDefault(require("../helpers/sanitize/parseSynonyms"));
12
- var _mergeListItems = require("../helpers/sanitize/mergeListItems");
13
- var _htmlParser = _interopRequireDefault(require("../helpers/html/htmlParser"));
14
- var _filterShortcodesFromTree = require("../helpers/sanitize/filterShortcodesFromTree");
15
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
10
  /**
17
11
  * Checks whether at least half of the content words from the topic are found within the sentence.
18
12
  * Assigns a score to every sentence following the following schema:
@@ -29,7 +23,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
29
23
  const computeScoresPerSentenceLongTopic = function (topic, sentences, locale, matchWordCustomHelper) {
30
24
  const sentenceScores = Array(sentences.length);
31
25
  for (let i = 0; i < sentences.length; i++) {
32
- const foundInCurrentSentence = (0, _findKeywordFormsInString.findWordFormsInString)(topic, sentences[i], locale, matchWordCustomHelper);
26
+ const foundInCurrentSentence = findWordFormsInString(topic, sentences[i], locale, matchWordCustomHelper);
33
27
  if (foundInCurrentSentence.percentWordMatches >= 50) {
34
28
  sentenceScores[i] = 9;
35
29
  } else {
@@ -52,12 +46,11 @@ const computeScoresPerSentenceLongTopic = function (topic, sentences, locale, ma
52
46
  *
53
47
  * @returns {Array} The scores per sentence.
54
48
  */
55
- exports.computeScoresPerSentenceLongTopic = computeScoresPerSentenceLongTopic;
56
49
  const computeScoresPerSentenceShortTopic = function (topic, sentences, locale, matchWordCustomHelper) {
57
50
  const sentenceScores = Array(sentences.length);
58
51
  for (let i = 0; i < sentences.length; i++) {
59
52
  const currentSentence = sentences[i];
60
- const foundInCurrentSentence = (0, _findKeywordFormsInString.findWordFormsInString)(topic, currentSentence, locale, matchWordCustomHelper);
53
+ const foundInCurrentSentence = findWordFormsInString(topic, currentSentence, locale, matchWordCustomHelper);
61
54
  if (foundInCurrentSentence.percentWordMatches === 100) {
62
55
  sentenceScores[i] = 9;
63
56
  } else {
@@ -74,7 +67,6 @@ const computeScoresPerSentenceShortTopic = function (topic, sentences, locale, m
74
67
  *
75
68
  * @returns {Array} Maximal scores of topic relevance per sentence.
76
69
  */
77
- exports.computeScoresPerSentenceShortTopic = computeScoresPerSentenceShortTopic;
78
70
  const maximizeSentenceScores = function (sentenceScores) {
79
71
  const sentenceScoresTransposed = sentenceScores[0].map(function (col, i) {
80
72
  return sentenceScores.map(function (row) {
@@ -82,7 +74,7 @@ const maximizeSentenceScores = function (sentenceScores) {
82
74
  });
83
75
  });
84
76
  return sentenceScoresTransposed.map(function (scoresForOneSentence) {
85
- return (0, _lodash.max)(scoresForOneSentence);
77
+ return max(scoresForOneSentence);
86
78
  });
87
79
  };
88
80
 
@@ -93,7 +85,6 @@ const maximizeSentenceScores = function (sentenceScores) {
93
85
  *
94
86
  * @returns {number} The maximum number of sentences that do not include the topic.
95
87
  */
96
- exports.maximizeSentenceScores = maximizeSentenceScores;
97
88
  const getDistraction = function (sentenceScores) {
98
89
  const numberOfSentences = sentenceScores.length;
99
90
  const allTopicSentencesIndices = [];
@@ -117,7 +108,7 @@ const getDistraction = function (sentenceScores) {
117
108
  for (let i = 1; i < numberOfTopicSentences + 2; i++) {
118
109
  distances.push(allTopicSentencesIndices[i] - allTopicSentencesIndices[i - 1] - 1);
119
110
  }
120
- return (0, _lodash.max)(distances);
111
+ return max(distances);
121
112
  };
122
113
 
123
114
  /**
@@ -135,7 +126,6 @@ const getDistraction = function (sentenceScores) {
135
126
  *
136
127
  * @returns {Object} An array with maximized score per sentence and an array with all sentences that do not contain the topic.
137
128
  */
138
- exports.getDistraction = getDistraction;
139
129
  const getSentenceScores = function (sentences, topicFormsInOneArray, locale, functionWords, matchWordCustomHelper, topicLengthCriteria = 4, originalTopic, wordsCharacterCount) {
140
130
  // Compute per-sentence scores of topic-relatedness.
141
131
  const topicNumber = topicFormsInOneArray.length;
@@ -169,7 +159,7 @@ const getSentenceScores = function (sentences, topicFormsInOneArray, locale, fun
169
159
  const maximizedSentenceScores = maximizeSentenceScores(sentenceScores);
170
160
 
171
161
  // Zip an array combining each sentence with the associated maximized score.
172
- const sentencesWithMaximizedScores = (0, _lodash.zipWith)(sentences, maximizedSentenceScores, (sentence, score) => {
162
+ const sentencesWithMaximizedScores = zipWith(sentences, maximizedSentenceScores, (sentence, score) => {
173
163
  return {
174
164
  sentence,
175
165
  score
@@ -202,32 +192,32 @@ const keyphraseDistributionResearcher = function (paper, researcher) {
202
192
  // Custom topic length criteria for languages that don't use the default value to determine whether a topic is long or short.
203
193
  const topicLengthCriteria = researcher.getConfig("topicLength").lengthCriteria;
204
194
  let text = paper.getText();
205
- text = (0, _htmlParser.default)(text);
206
- text = (0, _filterShortcodesFromTree.filterShortcodesFromHTML)(text, paper._attributes && paper._attributes.shortcodes);
207
- text = (0, _mergeListItems.mergeListItems)(text);
208
- const sentences = (0, _getSentences.default)(text, memoizedTokenizer);
195
+ text = removeHtmlBlocks(text);
196
+ text = filterShortcodesFromHTML(text, paper._attributes && paper._attributes.shortcodes);
197
+ text = mergeListItems(text);
198
+ const sentences = getSentences(text, memoizedTokenizer);
209
199
  const topicForms = researcher.getResearch("morphology");
210
200
  const originalTopic = [];
211
201
  if (getContentWordsHelper) {
212
202
  originalTopic.push(getContentWordsHelper(paper.getKeyword()));
213
- (0, _parseSynonyms.default)(paper.getSynonyms()).forEach(synonym => originalTopic.push(getContentWordsHelper(synonym)));
203
+ parseSynonyms(paper.getSynonyms()).forEach(synonym => originalTopic.push(getContentWordsHelper(synonym)));
214
204
  }
215
205
  const locale = paper.getLocale();
216
206
  const topicFormsInOneArray = [topicForms.keyphraseForms];
217
207
  topicForms.synonymsForms.forEach(function (synonym) {
218
208
  topicFormsInOneArray.push(synonym);
219
209
  });
220
- const allTopicWords = (0, _lodash.uniq)((0, _lodash.flattenDeep)(topicFormsInOneArray)).sort((a, b) => b.length - a.length);
210
+ const allTopicWords = unique(flattenDeep(topicFormsInOneArray)).sort((a, b) => b.length - a.length);
221
211
 
222
212
  // Get per-sentence scores and sentences that have topic.
223
213
  const sentenceScores = getSentenceScores(sentences, topicFormsInOneArray, locale, functionWords, matchWordCustomHelper, topicLengthCriteria, originalTopic, wordsCharacterCount);
224
214
  const maximizedSentenceScores = sentenceScores.maximizedSentenceScores;
225
215
  const maxLengthDistraction = getDistraction(maximizedSentenceScores);
226
216
  return {
227
- sentencesToHighlight: (0, _markWordsInSentences.markWordsInSentences)(allTopicWords, sentenceScores.sentencesWithTopic, locale, matchWordCustomHelper),
217
+ sentencesToHighlight: markWordsInSentences(allTopicWords, sentenceScores.sentencesWithTopic, locale, matchWordCustomHelper),
228
218
  keyphraseDistributionScore: maxLengthDistraction / sentences.length * 100
229
219
  };
230
220
  };
231
- exports.keyphraseDistributionResearcher = keyphraseDistributionResearcher;
232
- var _default = exports.default = keyphraseDistributionResearcher;
221
+ export { computeScoresPerSentenceShortTopic, computeScoresPerSentenceLongTopic, maximizeSentenceScores, keyphraseDistributionResearcher, getDistraction };
222
+ export default keyphraseDistributionResearcher;
233
223
  //# sourceMappingURL=keyphraseDistribution.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyphraseDistribution.js","names":["_lodash","require","_findKeywordFormsInString","_markWordsInSentences","_getSentences","_interopRequireDefault","_parseSynonyms","_mergeListItems","_htmlParser","_filterShortcodesFromTree","e","__esModule","default","computeScoresPerSentenceLongTopic","topic","sentences","locale","matchWordCustomHelper","sentenceScores","Array","length","i","foundInCurrentSentence","findWordFormsInString","percentWordMatches","exports","computeScoresPerSentenceShortTopic","currentSentence","maximizeSentenceScores","sentenceScoresTransposed","map","col","row","scoresForOneSentence","max","getDistraction","numberOfSentences","allTopicSentencesIndices","push","numberOfTopicSentences","unshift","distances","getSentenceScores","topicFormsInOneArray","functionWords","topicLengthCriteria","originalTopic","wordsCharacterCount","topicNumber","topicLength","maximizedSentenceScores","sentencesWithMaximizedScores","zipWith","sentence","score","sentencesWithTopic","filter","sentenceObject","keyphraseDistributionResearcher","paper","researcher","getConfig","getHelper","getContentWordsHelper","getResearch","memoizedTokenizer","lengthCriteria","text","getText","removeHtmlBlocks","filterShortcodesFromHTML","_attributes","shortcodes","mergeListItems","getSentences","topicForms","getKeyword","parseSynonyms","getSynonyms","forEach","synonym","getLocale","keyphraseForms","synonymsForms","allTopicWords","unique","flattenDeep","sort","a","b","maxLengthDistraction","sentencesToHighlight","markWordsInSentences","keyphraseDistributionScore","_default"],"sources":["../../../src/languageProcessing/researches/keyphraseDistribution.js"],"sourcesContent":["import { flattenDeep, max, uniq as unique, zipWith } from \"lodash\";\nimport { findWordFormsInString } from \"../helpers/match/findKeywordFormsInString\";\nimport { markWordsInSentences } from \"../helpers/word/markWordsInSentences\";\nimport getSentences from \"../helpers/sentence/getSentences\";\nimport parseSynonyms from \"../helpers/sanitize/parseSynonyms\";\nimport { mergeListItems } from \"../helpers/sanitize/mergeListItems\";\nimport removeHtmlBlocks from \"../helpers/html/htmlParser\";\nimport { filterShortcodesFromHTML } from \"../helpers/sanitize/filterShortcodesFromTree\";\n\n/**\n * Checks whether at least half of the content words from the topic are found within the sentence.\n * Assigns a score to every sentence following the following schema:\n * 9 if at least half of the content words from the topic are in the sentence,\n * 3 otherwise.\n *\n * @param {Array} topic The word forms of all content words in a keyphrase or a synonym.\n * @param {Array} sentences An array of all sentences in the text.\n * @param {string} locale The locale of the paper to analyse.\n * @param {function} matchWordCustomHelper \tThe language-specific helper function to match word in text.\n *\n * @returns {Array} The scores per sentence.\n */\nconst computeScoresPerSentenceLongTopic = function( topic, sentences, locale, matchWordCustomHelper ) {\n\tconst sentenceScores = Array( sentences.length );\n\n\tfor ( let i = 0; i < sentences.length; i++ ) {\n\t\tconst foundInCurrentSentence = findWordFormsInString( topic, sentences[ i ], locale, matchWordCustomHelper );\n\n\t\tif ( foundInCurrentSentence.percentWordMatches >= 50 ) {\n\t\t\tsentenceScores[ i ] = 9;\n\t\t} else {\n\t\t\tsentenceScores[ i ] = 3;\n\t\t}\n\t}\n\n\treturn sentenceScores;\n};\n\n\n/**\n * Checks whether all content words from the topic are found within one sentence.\n * Assigns a score to every sentence following the following schema:\n * 9 if all content words from the topic are in the sentence,\n * 3 if not all content words from the topic were found in the sentence.\n *\n * @param {Array} topic The word forms of all content words in a keyphrase or a synonym.\n * @param {Array} sentences An array of all sentences in the text.\n * @param {string} locale The locale of the paper to analyse.\n * @param {function} matchWordCustomHelper \tThe language-specific helper function to match word in text.\n *\n * @returns {Array} The scores per sentence.\n */\nconst computeScoresPerSentenceShortTopic = function( topic, sentences, locale, matchWordCustomHelper ) {\n\tconst sentenceScores = Array( sentences.length );\n\n\tfor ( let i = 0; i < sentences.length; i++ ) {\n\t\tconst currentSentence = sentences[ i ];\n\t\tconst foundInCurrentSentence = findWordFormsInString( topic, currentSentence, locale, matchWordCustomHelper );\n\t\tif ( foundInCurrentSentence.percentWordMatches === 100 ) {\n\t\t\tsentenceScores[ i ] = 9;\n\t\t} else {\n\t\t\tsentenceScores[ i ] = 3;\n\t\t}\n\t}\n\treturn sentenceScores;\n};\n\n/**\n * Maximizes scores: Give every sentence a maximal score that it got from analysis of all topics\n *\n * @param {Array} sentenceScores The scores for every sentence, as assessed per keyphrase and every synonym.\n *\n * @returns {Array} Maximal scores of topic relevance per sentence.\n */\nconst maximizeSentenceScores = function( sentenceScores ) {\n\tconst sentenceScoresTransposed = sentenceScores[ 0 ].map( function( col, i ) {\n\t\treturn sentenceScores.map( function( row ) {\n\t\t\treturn row[ i ];\n\t\t} );\n\t} );\n\n\treturn sentenceScoresTransposed.map( function( scoresForOneSentence ) {\n\t\treturn max( scoresForOneSentence );\n\t} );\n};\n\n\n/**\n * Computes the maximally long piece of text that does not include the topic.\n *\n * @param {Array} sentenceScores The array of scores per sentence.\n *\n * @returns {number} The maximum number of sentences that do not include the topic.\n */\nconst getDistraction = function( sentenceScores ) {\n\tconst numberOfSentences = sentenceScores.length;\n\tconst allTopicSentencesIndices = [];\n\n\tfor ( let i = 0; i < numberOfSentences; i++ ) {\n\t\tif ( sentenceScores[ i ] > 3 ) {\n\t\t\tallTopicSentencesIndices.push( i );\n\t\t}\n\t}\n\n\tconst numberOfTopicSentences = allTopicSentencesIndices.length;\n\n\tif ( numberOfTopicSentences === 0 ) {\n\t\treturn numberOfSentences;\n\t}\n\n\t/**\n\t * Add fake topic sentences at the very beginning and at the very end\n\t * to account for cases when the text starts or ends with a train of distraction.\n\t */\n\tallTopicSentencesIndices.unshift( -1 );\n\tallTopicSentencesIndices.push( numberOfSentences );\n\n\tconst distances = [];\n\n\tfor ( let i = 1; i < numberOfTopicSentences + 2; i++ ) {\n\t\tdistances.push( allTopicSentencesIndices[ i ] - allTopicSentencesIndices[ i - 1 ] - 1 );\n\t}\n\n\treturn max( distances );\n};\n\n/**\n * Computes the per-sentence scores depending on the length of the topic phrase and maximizes them over all topic phrases.\n *\n * @param {Array} sentences The sentences to get scores for.\n * @param {Array} topicFormsInOneArray The topic phrases forms to search for in the sentences.\n * @param {string} locale The locale to work in.\n * @param {Array} functionWords The function words list.\n * @param {function} matchWordCustomHelper \tThe language-specific helper function to match word in text.\n * @param {int} topicLengthCriteria The topic length criteria. The default value is 4, where a topic is considered short\n * if it's less than 4 word long, and otherwise long.\n * @param {Array} originalTopic The array of the original form of the topic with function words filtered out.\n * @param {function} wordsCharacterCount The helper to calculate the characters length of all the words in the array.\n *\n * @returns {Object} An array with maximized score per sentence and an array with all sentences that do not contain the topic.\n */\nconst getSentenceScores = function( sentences, topicFormsInOneArray, locale, functionWords, matchWordCustomHelper,\n\ttopicLengthCriteria = 4, originalTopic, wordsCharacterCount ) {\n\t// Compute per-sentence scores of topic-relatedness.\n\tconst topicNumber = topicFormsInOneArray.length;\n\n\tconst sentenceScores = Array( topicNumber );\n\n\t// For languages with function words apply either full match or partial match depending on topic length\n\tif ( functionWords.length > 0 ) {\n\t\tfor ( let i = 0; i < topicNumber; i++ ) {\n\t\t\tconst topic = topicFormsInOneArray[ i ];\n\t\t\t/*\n\t\t\t * If the helper to calculate the characters length of all the words in the array is available,\n\t\t\t * we use this helper to calculate the characters length of the original topic form.\n\t\t\t * We then use the result and compare it with the topicLengthCriteria.\n\t\t\t */\n\t\t\tconst topicLength = wordsCharacterCount ? wordsCharacterCount( originalTopic[ i ] ) : topic.length;\n\t\t\tif ( topicLength < topicLengthCriteria ) {\n\t\t\t\tsentenceScores[ i ] = computeScoresPerSentenceShortTopic( topic, sentences, locale, matchWordCustomHelper );\n\t\t\t} else {\n\t\t\t\tsentenceScores[ i ] = computeScoresPerSentenceLongTopic( topic, sentences, locale, matchWordCustomHelper );\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// For languages without function words apply the full match always\n\t\tfor ( let i = 0; i < topicNumber; i++ ) {\n\t\t\tconst topic = topicFormsInOneArray[ i ];\n\t\t\tsentenceScores[ i ] = computeScoresPerSentenceShortTopic( topic, sentences, locale, matchWordCustomHelper );\n\t\t}\n\t}\n\n\t// Maximize scores: Give every sentence a maximal score that it got from analysis of all topics\n\tconst maximizedSentenceScores = maximizeSentenceScores( sentenceScores );\n\n\t// Zip an array combining each sentence with the associated maximized score.\n\tconst sentencesWithMaximizedScores = zipWith( sentences, maximizedSentenceScores, ( sentence, score ) => {\n\t\treturn { sentence, score };\n\t} );\n\n\t// Filter sentences that contain topic words for future highlights.\n\tconst sentencesWithTopic = sentencesWithMaximizedScores.filter( sentenceObject => sentenceObject.score > 3 );\n\n\treturn {\n\t\tmaximizedSentenceScores: maximizedSentenceScores,\n\t\tsentencesWithTopic: sentencesWithTopic.map( sentenceObject => sentenceObject.sentence ),\n\t};\n};\n\n\n/**\n * Determines which portions of the text did not receive a lot of content words from keyphrase and synonyms.\n *\n * @param {Paper} paper The paper to check the keyphrase distribution for.\n * @param {Researcher} researcher The researcher to use for analysis.\n *\n * @returns {Object} The scores of topic relevance per portion of text and an array of all word forms to highlight.\n */\nconst keyphraseDistributionResearcher = function( paper, researcher ) {\n\tconst functionWords = researcher.getConfig( \"functionWords\" );\n\tconst matchWordCustomHelper = researcher.getHelper( \"matchWordCustomHelper\" );\n\tconst getContentWordsHelper = researcher.getHelper( \"getContentWords\" );\n\tconst wordsCharacterCount = researcher.getResearch( \"wordsCharacterCount\" );\n\tconst memoizedTokenizer = researcher.getHelper( \"memoizedTokenizer\" );\n\n\t// Custom topic length criteria for languages that don't use the default value to determine whether a topic is long or short.\n\tconst topicLengthCriteria = researcher.getConfig( \"topicLength\" ).lengthCriteria;\n\n\tlet text = paper.getText();\n\ttext = removeHtmlBlocks( text );\n\ttext = filterShortcodesFromHTML( text, paper._attributes && paper._attributes.shortcodes );\n\ttext = mergeListItems( text );\n\tconst sentences = getSentences( text, memoizedTokenizer );\n\tconst topicForms = researcher.getResearch( \"morphology\" );\n\n\tconst originalTopic = [];\n\tif ( getContentWordsHelper ) {\n\t\toriginalTopic.push( getContentWordsHelper( paper.getKeyword() ) );\n\t\tparseSynonyms( paper.getSynonyms() ).forEach( synonym => originalTopic.push( getContentWordsHelper( synonym ) ) );\n\t}\n\tconst locale = paper.getLocale();\n\tconst topicFormsInOneArray = [ topicForms.keyphraseForms ];\n\ttopicForms.synonymsForms.forEach( function( synonym ) {\n\t\ttopicFormsInOneArray.push( synonym );\n\t} );\n\n\tconst allTopicWords = unique( flattenDeep( topicFormsInOneArray ) ).sort( ( a, b ) => b.length - a.length );\n\n\t// Get per-sentence scores and sentences that have topic.\n\tconst sentenceScores = getSentenceScores( sentences, topicFormsInOneArray, locale, functionWords, matchWordCustomHelper,\n\t\ttopicLengthCriteria, originalTopic, wordsCharacterCount );\n\tconst maximizedSentenceScores = sentenceScores.maximizedSentenceScores;\n\tconst maxLengthDistraction = getDistraction( maximizedSentenceScores );\n\n\treturn {\n\t\tsentencesToHighlight: markWordsInSentences( allTopicWords, sentenceScores.sentencesWithTopic, locale, matchWordCustomHelper ),\n\t\tkeyphraseDistributionScore: maxLengthDistraction / sentences.length * 100,\n\t};\n};\n\nexport {\n\tcomputeScoresPerSentenceShortTopic,\n\tcomputeScoresPerSentenceLongTopic,\n\tmaximizeSentenceScores,\n\tkeyphraseDistributionResearcher,\n\tgetDistraction,\n};\n\nexport default keyphraseDistributionResearcher;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"keyphraseDistribution.js","names":["flattenDeep","max","uniq","unique","zipWith","findWordFormsInString","markWordsInSentences","getSentences","parseSynonyms","mergeListItems","removeHtmlBlocks","filterShortcodesFromHTML","computeScoresPerSentenceLongTopic","topic","sentences","locale","matchWordCustomHelper","sentenceScores","Array","length","i","foundInCurrentSentence","percentWordMatches","computeScoresPerSentenceShortTopic","currentSentence","maximizeSentenceScores","sentenceScoresTransposed","map","col","row","scoresForOneSentence","getDistraction","numberOfSentences","allTopicSentencesIndices","push","numberOfTopicSentences","unshift","distances","getSentenceScores","topicFormsInOneArray","functionWords","topicLengthCriteria","originalTopic","wordsCharacterCount","topicNumber","topicLength","maximizedSentenceScores","sentencesWithMaximizedScores","sentence","score","sentencesWithTopic","filter","sentenceObject","keyphraseDistributionResearcher","paper","researcher","getConfig","getHelper","getContentWordsHelper","getResearch","memoizedTokenizer","lengthCriteria","text","getText","_attributes","shortcodes","topicForms","getKeyword","getSynonyms","forEach","synonym","getLocale","keyphraseForms","synonymsForms","allTopicWords","sort","a","b","maxLengthDistraction","sentencesToHighlight","keyphraseDistributionScore"],"sources":["../../../src/languageProcessing/researches/keyphraseDistribution.js"],"sourcesContent":["import { flattenDeep, max, uniq as unique, zipWith } from \"lodash\";\nimport { findWordFormsInString } from \"../helpers/match/findKeywordFormsInString\";\nimport { markWordsInSentences } from \"../helpers/word/markWordsInSentences\";\nimport getSentences from \"../helpers/sentence/getSentences\";\nimport parseSynonyms from \"../helpers/sanitize/parseSynonyms\";\nimport { mergeListItems } from \"../helpers/sanitize/mergeListItems\";\nimport removeHtmlBlocks from \"../helpers/html/htmlParser\";\nimport { filterShortcodesFromHTML } from \"../helpers/sanitize/filterShortcodesFromTree\";\n\n/**\n * Checks whether at least half of the content words from the topic are found within the sentence.\n * Assigns a score to every sentence following the following schema:\n * 9 if at least half of the content words from the topic are in the sentence,\n * 3 otherwise.\n *\n * @param {Array} topic The word forms of all content words in a keyphrase or a synonym.\n * @param {Array} sentences An array of all sentences in the text.\n * @param {string} locale The locale of the paper to analyse.\n * @param {function} matchWordCustomHelper \tThe language-specific helper function to match word in text.\n *\n * @returns {Array} The scores per sentence.\n */\nconst computeScoresPerSentenceLongTopic = function( topic, sentences, locale, matchWordCustomHelper ) {\n\tconst sentenceScores = Array( sentences.length );\n\n\tfor ( let i = 0; i < sentences.length; i++ ) {\n\t\tconst foundInCurrentSentence = findWordFormsInString( topic, sentences[ i ], locale, matchWordCustomHelper );\n\n\t\tif ( foundInCurrentSentence.percentWordMatches >= 50 ) {\n\t\t\tsentenceScores[ i ] = 9;\n\t\t} else {\n\t\t\tsentenceScores[ i ] = 3;\n\t\t}\n\t}\n\n\treturn sentenceScores;\n};\n\n\n/**\n * Checks whether all content words from the topic are found within one sentence.\n * Assigns a score to every sentence following the following schema:\n * 9 if all content words from the topic are in the sentence,\n * 3 if not all content words from the topic were found in the sentence.\n *\n * @param {Array} topic The word forms of all content words in a keyphrase or a synonym.\n * @param {Array} sentences An array of all sentences in the text.\n * @param {string} locale The locale of the paper to analyse.\n * @param {function} matchWordCustomHelper \tThe language-specific helper function to match word in text.\n *\n * @returns {Array} The scores per sentence.\n */\nconst computeScoresPerSentenceShortTopic = function( topic, sentences, locale, matchWordCustomHelper ) {\n\tconst sentenceScores = Array( sentences.length );\n\n\tfor ( let i = 0; i < sentences.length; i++ ) {\n\t\tconst currentSentence = sentences[ i ];\n\t\tconst foundInCurrentSentence = findWordFormsInString( topic, currentSentence, locale, matchWordCustomHelper );\n\t\tif ( foundInCurrentSentence.percentWordMatches === 100 ) {\n\t\t\tsentenceScores[ i ] = 9;\n\t\t} else {\n\t\t\tsentenceScores[ i ] = 3;\n\t\t}\n\t}\n\treturn sentenceScores;\n};\n\n/**\n * Maximizes scores: Give every sentence a maximal score that it got from analysis of all topics\n *\n * @param {Array} sentenceScores The scores for every sentence, as assessed per keyphrase and every synonym.\n *\n * @returns {Array} Maximal scores of topic relevance per sentence.\n */\nconst maximizeSentenceScores = function( sentenceScores ) {\n\tconst sentenceScoresTransposed = sentenceScores[ 0 ].map( function( col, i ) {\n\t\treturn sentenceScores.map( function( row ) {\n\t\t\treturn row[ i ];\n\t\t} );\n\t} );\n\n\treturn sentenceScoresTransposed.map( function( scoresForOneSentence ) {\n\t\treturn max( scoresForOneSentence );\n\t} );\n};\n\n\n/**\n * Computes the maximally long piece of text that does not include the topic.\n *\n * @param {Array} sentenceScores The array of scores per sentence.\n *\n * @returns {number} The maximum number of sentences that do not include the topic.\n */\nconst getDistraction = function( sentenceScores ) {\n\tconst numberOfSentences = sentenceScores.length;\n\tconst allTopicSentencesIndices = [];\n\n\tfor ( let i = 0; i < numberOfSentences; i++ ) {\n\t\tif ( sentenceScores[ i ] > 3 ) {\n\t\t\tallTopicSentencesIndices.push( i );\n\t\t}\n\t}\n\n\tconst numberOfTopicSentences = allTopicSentencesIndices.length;\n\n\tif ( numberOfTopicSentences === 0 ) {\n\t\treturn numberOfSentences;\n\t}\n\n\t/**\n\t * Add fake topic sentences at the very beginning and at the very end\n\t * to account for cases when the text starts or ends with a train of distraction.\n\t */\n\tallTopicSentencesIndices.unshift( -1 );\n\tallTopicSentencesIndices.push( numberOfSentences );\n\n\tconst distances = [];\n\n\tfor ( let i = 1; i < numberOfTopicSentences + 2; i++ ) {\n\t\tdistances.push( allTopicSentencesIndices[ i ] - allTopicSentencesIndices[ i - 1 ] - 1 );\n\t}\n\n\treturn max( distances );\n};\n\n/**\n * Computes the per-sentence scores depending on the length of the topic phrase and maximizes them over all topic phrases.\n *\n * @param {Array} sentences The sentences to get scores for.\n * @param {Array} topicFormsInOneArray The topic phrases forms to search for in the sentences.\n * @param {string} locale The locale to work in.\n * @param {Array} functionWords The function words list.\n * @param {function} matchWordCustomHelper \tThe language-specific helper function to match word in text.\n * @param {int} topicLengthCriteria The topic length criteria. The default value is 4, where a topic is considered short\n * if it's less than 4 word long, and otherwise long.\n * @param {Array} originalTopic The array of the original form of the topic with function words filtered out.\n * @param {function} wordsCharacterCount The helper to calculate the characters length of all the words in the array.\n *\n * @returns {Object} An array with maximized score per sentence and an array with all sentences that do not contain the topic.\n */\nconst getSentenceScores = function( sentences, topicFormsInOneArray, locale, functionWords, matchWordCustomHelper,\n\ttopicLengthCriteria = 4, originalTopic, wordsCharacterCount ) {\n\t// Compute per-sentence scores of topic-relatedness.\n\tconst topicNumber = topicFormsInOneArray.length;\n\n\tconst sentenceScores = Array( topicNumber );\n\n\t// For languages with function words apply either full match or partial match depending on topic length\n\tif ( functionWords.length > 0 ) {\n\t\tfor ( let i = 0; i < topicNumber; i++ ) {\n\t\t\tconst topic = topicFormsInOneArray[ i ];\n\t\t\t/*\n\t\t\t * If the helper to calculate the characters length of all the words in the array is available,\n\t\t\t * we use this helper to calculate the characters length of the original topic form.\n\t\t\t * We then use the result and compare it with the topicLengthCriteria.\n\t\t\t */\n\t\t\tconst topicLength = wordsCharacterCount ? wordsCharacterCount( originalTopic[ i ] ) : topic.length;\n\t\t\tif ( topicLength < topicLengthCriteria ) {\n\t\t\t\tsentenceScores[ i ] = computeScoresPerSentenceShortTopic( topic, sentences, locale, matchWordCustomHelper );\n\t\t\t} else {\n\t\t\t\tsentenceScores[ i ] = computeScoresPerSentenceLongTopic( topic, sentences, locale, matchWordCustomHelper );\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// For languages without function words apply the full match always\n\t\tfor ( let i = 0; i < topicNumber; i++ ) {\n\t\t\tconst topic = topicFormsInOneArray[ i ];\n\t\t\tsentenceScores[ i ] = computeScoresPerSentenceShortTopic( topic, sentences, locale, matchWordCustomHelper );\n\t\t}\n\t}\n\n\t// Maximize scores: Give every sentence a maximal score that it got from analysis of all topics\n\tconst maximizedSentenceScores = maximizeSentenceScores( sentenceScores );\n\n\t// Zip an array combining each sentence with the associated maximized score.\n\tconst sentencesWithMaximizedScores = zipWith( sentences, maximizedSentenceScores, ( sentence, score ) => {\n\t\treturn { sentence, score };\n\t} );\n\n\t// Filter sentences that contain topic words for future highlights.\n\tconst sentencesWithTopic = sentencesWithMaximizedScores.filter( sentenceObject => sentenceObject.score > 3 );\n\n\treturn {\n\t\tmaximizedSentenceScores: maximizedSentenceScores,\n\t\tsentencesWithTopic: sentencesWithTopic.map( sentenceObject => sentenceObject.sentence ),\n\t};\n};\n\n\n/**\n * Determines which portions of the text did not receive a lot of content words from keyphrase and synonyms.\n *\n * @param {Paper} paper The paper to check the keyphrase distribution for.\n * @param {Researcher} researcher The researcher to use for analysis.\n *\n * @returns {Object} The scores of topic relevance per portion of text and an array of all word forms to highlight.\n */\nconst keyphraseDistributionResearcher = function( paper, researcher ) {\n\tconst functionWords = researcher.getConfig( \"functionWords\" );\n\tconst matchWordCustomHelper = researcher.getHelper( \"matchWordCustomHelper\" );\n\tconst getContentWordsHelper = researcher.getHelper( \"getContentWords\" );\n\tconst wordsCharacterCount = researcher.getResearch( \"wordsCharacterCount\" );\n\tconst memoizedTokenizer = researcher.getHelper( \"memoizedTokenizer\" );\n\n\t// Custom topic length criteria for languages that don't use the default value to determine whether a topic is long or short.\n\tconst topicLengthCriteria = researcher.getConfig( \"topicLength\" ).lengthCriteria;\n\n\tlet text = paper.getText();\n\ttext = removeHtmlBlocks( text );\n\ttext = filterShortcodesFromHTML( text, paper._attributes && paper._attributes.shortcodes );\n\ttext = mergeListItems( text );\n\tconst sentences = getSentences( text, memoizedTokenizer );\n\tconst topicForms = researcher.getResearch( \"morphology\" );\n\n\tconst originalTopic = [];\n\tif ( getContentWordsHelper ) {\n\t\toriginalTopic.push( getContentWordsHelper( paper.getKeyword() ) );\n\t\tparseSynonyms( paper.getSynonyms() ).forEach( synonym => originalTopic.push( getContentWordsHelper( synonym ) ) );\n\t}\n\tconst locale = paper.getLocale();\n\tconst topicFormsInOneArray = [ topicForms.keyphraseForms ];\n\ttopicForms.synonymsForms.forEach( function( synonym ) {\n\t\ttopicFormsInOneArray.push( synonym );\n\t} );\n\n\tconst allTopicWords = unique( flattenDeep( topicFormsInOneArray ) ).sort( ( a, b ) => b.length - a.length );\n\n\t// Get per-sentence scores and sentences that have topic.\n\tconst sentenceScores = getSentenceScores( sentences, topicFormsInOneArray, locale, functionWords, matchWordCustomHelper,\n\t\ttopicLengthCriteria, originalTopic, wordsCharacterCount );\n\tconst maximizedSentenceScores = sentenceScores.maximizedSentenceScores;\n\tconst maxLengthDistraction = getDistraction( maximizedSentenceScores );\n\n\treturn {\n\t\tsentencesToHighlight: markWordsInSentences( allTopicWords, sentenceScores.sentencesWithTopic, locale, matchWordCustomHelper ),\n\t\tkeyphraseDistributionScore: maxLengthDistraction / sentences.length * 100,\n\t};\n};\n\nexport {\n\tcomputeScoresPerSentenceShortTopic,\n\tcomputeScoresPerSentenceLongTopic,\n\tmaximizeSentenceScores,\n\tkeyphraseDistributionResearcher,\n\tgetDistraction,\n};\n\nexport default keyphraseDistributionResearcher;\n"],"mappings":"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","ignoreList":[]}
@@ -1,9 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = _default;
7
1
  /**
8
2
  * Determines the length in words of the keyphrase.
9
3
  *
@@ -12,7 +6,7 @@ exports.default = _default;
12
6
  *
13
7
  * @returns {Object} The length of the keyphrase and the function words list.
14
8
  */
15
- function _default(paper, researcher) {
9
+ export default function (paper, researcher) {
16
10
  const topicForms = researcher.getResearch("morphology");
17
11
  const functionWords = researcher.getConfig("functionWords");
18
12
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"keyphraseLength.js","names":["_default","paper","researcher","topicForms","getResearch","functionWords","getConfig","keyphraseLength","keyphraseForms","length"],"sources":["../../../src/languageProcessing/researches/keyphraseLength.js"],"sourcesContent":["/**\n * Determines the length in words of the keyphrase.\n *\n * @param {Paper} paper \t\t\tThe paper to research\n * @param {Researcher} researcher \tThe researcher to use for analysis\n *\n * @returns {Object} The length of the keyphrase and the function words list.\n */\nexport default function( paper, researcher ) {\n\tconst topicForms = researcher.getResearch( \"morphology\" );\n\tconst functionWords = researcher.getConfig( \"functionWords\" );\n\n\treturn {\n\t\tkeyphraseLength: topicForms.keyphraseForms.length,\n\t\tfunctionWords: functionWords,\n\t};\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAAA,SAAUC,KAAK,EAAEC,UAAU,EAAG;EAC5C,MAAMC,UAAU,GAAGD,UAAU,CAACE,WAAW,CAAE,YAAa,CAAC;EACzD,MAAMC,aAAa,GAAGH,UAAU,CAACI,SAAS,CAAE,eAAgB,CAAC;EAE7D,OAAO;IACNC,eAAe,EAAEJ,UAAU,CAACK,cAAc,CAACC,MAAM;IACjDJ,aAAa,EAAEA;EAChB,CAAC;AACF","ignoreList":[]}
1
+ {"version":3,"file":"keyphraseLength.js","names":["paper","researcher","topicForms","getResearch","functionWords","getConfig","keyphraseLength","keyphraseForms","length"],"sources":["../../../src/languageProcessing/researches/keyphraseLength.js"],"sourcesContent":["/**\n * Determines the length in words of the keyphrase.\n *\n * @param {Paper} paper \t\t\tThe paper to research\n * @param {Researcher} researcher \tThe researcher to use for analysis\n *\n * @returns {Object} The length of the keyphrase and the function words list.\n */\nexport default function( paper, researcher ) {\n\tconst topicForms = researcher.getResearch( \"morphology\" );\n\tconst functionWords = researcher.getConfig( \"functionWords\" );\n\n\treturn {\n\t\tkeyphraseLength: topicForms.keyphraseForms.length,\n\t\tfunctionWords: functionWords,\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,UAAUA,KAAK,EAAEC,UAAU,EAAG;EAC5C,MAAMC,UAAU,GAAGD,UAAU,CAACE,WAAW,CAAE,YAAa,CAAC;EACzD,MAAMC,aAAa,GAAGH,UAAU,CAACI,SAAS,CAAE,eAAgB,CAAC;EAE7D,OAAO;IACNC,eAAe,EAAEJ,UAAU,CAACK,cAAc,CAACC,MAAM;IACjDJ,aAAa,EAAEA;EAChB,CAAC;AACF","ignoreList":[]}
@@ -1,21 +1,13 @@
1
- "use strict";
1
+ import { flatten, flattenDeep } from 'lodash';
2
+ import getSentencesFromTree from "../helpers/sentence/getSentencesFromTree";
3
+ import { normalizeSingle } from "../helpers/sanitize/quotes";
4
+ import getMarkingsInSentence from "../helpers/highlighting/getMarkingsInSentence";
5
+ import matchWordFormsWithSentence from "../helpers/match/matchWordFormsWithSentence";
6
+ import isDoubleQuoted from "../helpers/match/isDoubleQuoted";
7
+ import { markWordsInASentence } from "../helpers/word/markWordsInSentences";
8
+ import getSentences from "../helpers/sentence/getSentences";
9
+ import { filterShortcodesFromHTML } from "../helpers";
2
10
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.countKeyphraseInText = countKeyphraseInText;
7
- exports.default = getKeyphraseCount;
8
- exports.keywordCount = keywordCount;
9
- var _lodash = require("lodash");
10
- var _getSentencesFromTree = _interopRequireDefault(require("../helpers/sentence/getSentencesFromTree"));
11
- var _quotes = require("../helpers/sanitize/quotes");
12
- var _getMarkingsInSentence = _interopRequireDefault(require("../helpers/highlighting/getMarkingsInSentence"));
13
- var _matchWordFormsWithSentence = _interopRequireDefault(require("../helpers/match/matchWordFormsWithSentence"));
14
- var _isDoubleQuoted = _interopRequireDefault(require("../helpers/match/isDoubleQuoted"));
15
- var _markWordsInSentences = require("../helpers/word/markWordsInSentences");
16
- var _getSentences = _interopRequireDefault(require("../helpers/sentence/getSentences"));
17
- var _helpers = require("../helpers");
18
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
11
  /**
20
12
  * Counts the occurrences of the keyphrase in the text and creates the Mark objects for the matches.
21
13
  *
@@ -28,14 +20,13 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
28
20
  *
29
21
  * @returns {{markings: Mark[], count: number}} The number of keyphrase occurrences in the text and the Mark objects of the matches.
30
22
  */
31
- function countKeyphraseInText(sentences, keyphraseForms, locale, matchWordCustomHelper, isExactMatchRequested, customSplitIntoTokensHelper) {
23
+ export function countKeyphraseInText(sentences, keyphraseForms, locale, matchWordCustomHelper, isExactMatchRequested, customSplitIntoTokensHelper) {
32
24
  const result = {
33
25
  count: 0,
34
26
  markings: []
35
27
  };
36
28
  sentences.forEach(sentence => {
37
- const matchesInSentence = keyphraseForms.map(wordForms => (0, _matchWordFormsWithSentence.default)(sentence, wordForms, locale, matchWordCustomHelper, isExactMatchRequested, customSplitIntoTokensHelper));
38
-
29
+ const matchesInSentence = keyphraseForms.map(wordForms => matchWordFormsWithSentence(sentence, wordForms, locale, matchWordCustomHelper, isExactMatchRequested, customSplitIntoTokensHelper));
39
30
  // A sentence has at least one full-match of the keyphrase if each word occurs at least once.
40
31
  const isEachWordFound = matchesInSentence.every(wordForms => wordForms.count > 0);
41
32
  if (isEachWordFound) {
@@ -54,13 +45,13 @@ function countKeyphraseInText(sentences, keyphraseForms, locale, matchWordCustom
54
45
  * to be counted as a full-match.
55
46
  */
56
47
  const totalMatchCount = Math.min(...counts);
57
- const foundWords = (0, _lodash.flattenDeep)(matchesInSentence.map(match => match.matches));
48
+ const foundWords = flattenDeep(matchesInSentence.map(match => match.matches));
58
49
  let markings = [];
59
50
  if (matchWordCustomHelper) {
60
51
  // Currently, this check is only applicable for Japanese.
61
- markings = (0, _markWordsInSentences.markWordsInASentence)(sentence, foundWords, matchWordCustomHelper);
52
+ markings = markWordsInASentence(sentence, foundWords, matchWordCustomHelper);
62
53
  } else {
63
- markings = (0, _getMarkingsInSentence.default)(sentence, foundWords);
54
+ markings = getMarkingsInSentence(sentence, foundWords);
64
55
  }
65
56
  result.count += totalMatchCount;
66
57
  result.markings.push(markings);
@@ -77,13 +68,13 @@ function countKeyphraseInText(sentences, keyphraseForms, locale, matchWordCustom
77
68
  *
78
69
  * @returns {{count: number, markings: Mark[], keyphraseLength: number}} An object containing the keyphrase count, markings and the kephrase length.
79
70
  */
80
- function getKeyphraseCount(paper, researcher) {
71
+ export default function getKeyphraseCount(paper, researcher) {
81
72
  const result = {
82
73
  count: 0,
83
74
  markings: [],
84
75
  keyphraseLength: 0
85
76
  };
86
- const topicForms = researcher.getResearch("morphology");
77
+ const topicForms = researcher.getResearch('morphology');
87
78
  let keyphraseForms = topicForms.keyphraseForms;
88
79
  const keyphraseLength = keyphraseForms.length;
89
80
 
@@ -91,29 +82,29 @@ function getKeyphraseCount(paper, researcher) {
91
82
  * Normalize single quotes so that word form with different type of single quotes can still be matched.
92
83
  * For example, "key‛word" should match "key'word".
93
84
  */
94
- keyphraseForms = keyphraseForms.map(word => word.map(form => (0, _quotes.normalizeSingle)(form)));
85
+ keyphraseForms = keyphraseForms.map(word => word.map(form => normalizeSingle(form)));
95
86
  if (keyphraseLength === 0) {
96
87
  return result;
97
88
  }
98
- const matchWordCustomHelper = researcher.getHelper("matchWordCustomHelper");
99
- const customSentenceTokenizer = researcher.getHelper("memoizedTokenizer");
100
- const customSplitIntoTokensHelper = researcher.getHelper("splitIntoTokensCustom");
89
+ const matchWordCustomHelper = researcher.getHelper('matchWordCustomHelper');
90
+ const customSentenceTokenizer = researcher.getHelper('memoizedTokenizer');
91
+ const customSplitIntoTokensHelper = researcher.getHelper('splitIntoTokensCustom');
101
92
  const locale = paper.getLocale();
102
- const text = matchWordCustomHelper ? (0, _helpers.filterShortcodesFromHTML)(paper.getText(), paper._attributes && paper._attributes.shortcodes) : paper.getText();
93
+ const text = matchWordCustomHelper ? filterShortcodesFromHTML(paper.getText(), paper._attributes && paper._attributes.shortcodes) : paper.getText();
103
94
 
104
95
  // When the custom helper is available, we're using the sentences retrieved from the text for the analysis.
105
- const sentences = matchWordCustomHelper ? (0, _getSentences.default)(text, customSentenceTokenizer) : (0, _getSentencesFromTree.default)(paper);
96
+ const sentences = matchWordCustomHelper ? getSentences(text, customSentenceTokenizer) : getSentencesFromTree(paper);
106
97
  // Exact matching is requested when the keyphrase is enclosed in double quotes.
107
- const isExactMatchRequested = (0, _isDoubleQuoted.default)(paper.getKeyword());
98
+ const isExactMatchRequested = isDoubleQuoted(paper.getKeyword());
108
99
 
109
100
  /*
110
- * Count the amount of keyphrase occurrences in the sentences.
111
- * An occurrence is counted when all words of the keyphrase are contained within the sentence. Each sentence can contain multiple keyphrases.
112
- * (e.g. "The apple potato is an apple and a potato." has two occurrences of the keyphrase "apple potato").
113
- */
101
+ * Count the amount of keyphrase occurrences in the sentences.
102
+ * An occurrence is counted when all words of the keyphrase are contained within the sentence. Each sentence can contain multiple keyphrases.
103
+ * (e.g. "The apple potato is an apple and a potato." has two occurrences of the keyphrase "apple potato").
104
+ */
114
105
  const keyphraseFound = countKeyphraseInText(sentences, keyphraseForms, locale, matchWordCustomHelper, isExactMatchRequested, customSplitIntoTokensHelper);
115
106
  result.count = keyphraseFound.count;
116
- result.markings = (0, _lodash.flatten)(keyphraseFound.markings);
107
+ result.markings = flatten(keyphraseFound.markings);
117
108
  result.keyphraseLength = keyphraseLength;
118
109
  return result;
119
110
  }
@@ -128,8 +119,8 @@ function getKeyphraseCount(paper, researcher) {
128
119
  *
129
120
  * @returns {Object} An array of all the matches, markings and the keyphrase count.
130
121
  */
131
- function keywordCount(paper, researcher) {
132
- console.warn("This function is deprecated, use getKeyphraseCount instead.");
122
+ export function keywordCount(paper, researcher) {
123
+ console.warn('This function is deprecated, use getKeyphraseCount instead.');
133
124
  return getKeyphraseCount(paper, researcher);
134
125
  }
135
126
  //# sourceMappingURL=keywordCount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keywordCount.js","names":["_lodash","require","_getSentencesFromTree","_interopRequireDefault","_quotes","_getMarkingsInSentence","_matchWordFormsWithSentence","_isDoubleQuoted","_markWordsInSentences","_getSentences","_helpers","e","__esModule","default","countKeyphraseInText","sentences","keyphraseForms","locale","matchWordCustomHelper","isExactMatchRequested","customSplitIntoTokensHelper","result","count","markings","forEach","sentence","matchesInSentence","map","wordForms","matchWordFormsWithSentence","isEachWordFound","every","counts","match","totalMatchCount","Math","min","foundWords","flattenDeep","matches","markWordsInASentence","getMarkingsInSentence","push","getKeyphraseCount","paper","researcher","keyphraseLength","topicForms","getResearch","length","word","form","normalizeSingle","getHelper","customSentenceTokenizer","getLocale","text","filterShortcodesFromHTML","getText","_attributes","shortcodes","getSentences","getSentencesFromTree","isDoubleQuoted","getKeyword","keyphraseFound","flatten","keywordCount","console","warn"],"sources":["../../../src/languageProcessing/researches/keywordCount.js"],"sourcesContent":["import { flatten, flattenDeep } from \"lodash\";\nimport getSentencesFromTree from \"../helpers/sentence/getSentencesFromTree\";\nimport { normalizeSingle } from \"../helpers/sanitize/quotes\";\nimport getMarkingsInSentence from \"../helpers/highlighting/getMarkingsInSentence\";\nimport matchWordFormsWithSentence from \"../helpers/match/matchWordFormsWithSentence\";\nimport isDoubleQuoted from \"../helpers/match/isDoubleQuoted\";\nimport { markWordsInASentence } from \"../helpers/word/markWordsInSentences\";\nimport getSentences from \"../helpers/sentence/getSentences\";\nimport { filterShortcodesFromHTML } from \"../helpers\";\n\n/**\n * Counts the occurrences of the keyphrase in the text and creates the Mark objects for the matches.\n *\n * @param {(Sentence|string)[]}\tsentences\t\t\tThe sentences to check.\n * @param {Array}\t\tkeyphraseForms\t\t\t\tThe keyphrase forms.\n * @param {string}\t\tlocale\t\t\t\t\t\tThe locale used in the analysis.\n * @param {function}\tmatchWordCustomHelper\t\tA custom helper to match words with a text.\n * @param {boolean}\t\tisExactMatchRequested\t\tWhether the exact matching is requested.\n * @param {function}\tcustomSplitIntoTokensHelper\tA custom helper to split sentences into tokens.\n *\n * @returns {{markings: Mark[], count: number}} The number of keyphrase occurrences in the text and the Mark objects of the matches.\n */\nexport function countKeyphraseInText( sentences, keyphraseForms, locale, matchWordCustomHelper,\n\t\t\t\t\t\t\t\t\t isExactMatchRequested, customSplitIntoTokensHelper ) {\n\tconst result = { count: 0, markings: [] };\n\n\tsentences.forEach( sentence => {\n\t\tconst matchesInSentence = keyphraseForms.map( wordForms => matchWordFormsWithSentence( sentence,\n\t\t\twordForms, locale, matchWordCustomHelper, isExactMatchRequested, customSplitIntoTokensHelper ) );\n\n\t\t// A sentence has at least one full-match of the keyphrase if each word occurs at least once.\n\t\tconst isEachWordFound = matchesInSentence.every( wordForms => wordForms.count > 0 );\n\n\t\tif ( isEachWordFound ) {\n\t\t\t/*\n\t\t\t * Retrieve all the occurrences' count of each word of the keyphrase and save it in an array.\n\t\t\t * matches: [ [ { matches: [\"red\"], count: 1 } ], [ { matches: [\"pandas\"], count: 2 } ] ]\n\t\t\t * counts: [ 1, 2 ]\n\t\t\t */\n\t\t\tconst counts = matchesInSentence.map( match => match.count );\n\t\t\t/*\n\t\t\t * The number of the full-match count is the lowest count of the occurrences.\n\t\t\t * counts: [ 1, 2 ]\n\t\t\t * totalMatchCount: 1\n\t\t\t *\n\t\t\t * From the example above, the full-match is 1, because one of the \"pandas\" occurrences is not accompanied by \"red\"\n\t\t\t * to be counted as a full-match.\n\t\t\t */\n\t\t\tconst totalMatchCount = Math.min( ...counts );\n\t\t\tconst foundWords = flattenDeep( matchesInSentence.map( match => match.matches ) );\n\n\t\t\tlet markings = [];\n\n\t\t\tif ( matchWordCustomHelper ) {\n\t\t\t\t// Currently, this check is only applicable for Japanese.\n\t\t\t\tmarkings = markWordsInASentence( sentence, foundWords, matchWordCustomHelper );\n\t\t\t} else {\n\t\t\t\tmarkings = getMarkingsInSentence( sentence, foundWords );\n\t\t\t}\n\n\t\t\tresult.count += totalMatchCount;\n\t\t\tresult.markings.push( markings );\n\t\t}\n\t} );\n\n\treturn result;\n}\n\n/**\n * Calculates the keyphrase count, takes morphology into account.\n *\n * @param {Paper} paper The paper containing keyphrase and text.\n * @param {Researcher} researcher The researcher.\n *\n * @returns {{count: number, markings: Mark[], keyphraseLength: number}} An object containing the keyphrase count, markings and the kephrase length.\n */\nexport default function getKeyphraseCount( paper, researcher ) {\n\tconst result = { count: 0, markings: [], keyphraseLength: 0 };\n\tconst topicForms = researcher.getResearch( \"morphology\" );\n\tlet keyphraseForms = topicForms.keyphraseForms;\n\tconst keyphraseLength = keyphraseForms.length;\n\n\t/*\n\t * Normalize single quotes so that word form with different type of single quotes can still be matched.\n\t * For example, \"key‛word\" should match \"key'word\".\n\t */\n\tkeyphraseForms = keyphraseForms.map( word => word.map( form => normalizeSingle( form ) ) );\n\n\tif ( keyphraseLength === 0 ) {\n\t\treturn result;\n\t}\n\n\tconst matchWordCustomHelper = researcher.getHelper( \"matchWordCustomHelper\" );\n\tconst customSentenceTokenizer = researcher.getHelper( \"memoizedTokenizer\" );\n\tconst customSplitIntoTokensHelper = researcher.getHelper( \"splitIntoTokensCustom\" );\n\tconst locale = paper.getLocale();\n\tconst text = matchWordCustomHelper\n\t\t? filterShortcodesFromHTML( paper.getText(), paper._attributes && paper._attributes.shortcodes )\n\t\t: paper.getText();\n\n\t// When the custom helper is available, we're using the sentences retrieved from the text for the analysis.\n\tconst sentences = matchWordCustomHelper ? getSentences( text, customSentenceTokenizer ) : getSentencesFromTree( paper );\n\t// Exact matching is requested when the keyphrase is enclosed in double quotes.\n\tconst isExactMatchRequested = isDoubleQuoted( paper.getKeyword() );\n\n\t/*\n\t* Count the amount of keyphrase occurrences in the sentences.\n\t* An occurrence is counted when all words of the keyphrase are contained within the sentence. Each sentence can contain multiple keyphrases.\n\t* (e.g. \"The apple potato is an apple and a potato.\" has two occurrences of the keyphrase \"apple potato\").\n\t*/\n\tconst keyphraseFound = countKeyphraseInText( sentences, keyphraseForms, locale, matchWordCustomHelper,\n\t\tisExactMatchRequested, customSplitIntoTokensHelper );\n\n\tresult.count = keyphraseFound.count;\n\tresult.markings = flatten( keyphraseFound.markings );\n\tresult.keyphraseLength = keyphraseLength;\n\n\treturn result;\n}\n\n/**\n * Calculates the keyphrase count, takes morphology into account.\n *\n * @deprecated Use getKeyphraseCount instead.\n *\n * @param {Paper} paper The paper containing keyphrase and text.\n * @param {Researcher} researcher The researcher.\n *\n * @returns {Object} An array of all the matches, markings and the keyphrase count.\n */\nexport function keywordCount( paper, researcher ) {\n\tconsole.warn( \"This function is deprecated, use getKeyphraseCount instead.\" );\n\treturn getKeyphraseCount( paper, researcher );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"keywordCount.js","names":["flatten","flattenDeep","getSentencesFromTree","normalizeSingle","getMarkingsInSentence","matchWordFormsWithSentence","isDoubleQuoted","markWordsInASentence","getSentences","filterShortcodesFromHTML","countKeyphraseInText","sentences","keyphraseForms","locale","matchWordCustomHelper","isExactMatchRequested","customSplitIntoTokensHelper","result","count","markings","forEach","sentence","matchesInSentence","map","wordForms","isEachWordFound","every","counts","match","totalMatchCount","Math","min","foundWords","matches","push","getKeyphraseCount","paper","researcher","keyphraseLength","topicForms","getResearch","length","word","form","getHelper","customSentenceTokenizer","getLocale","text","getText","_attributes","shortcodes","getKeyword","keyphraseFound","keywordCount","console","warn"],"sources":["../../../src/languageProcessing/researches/keywordCount.js"],"sourcesContent":["import {flatten, flattenDeep} from 'lodash';\nimport getSentencesFromTree from '../helpers/sentence/getSentencesFromTree';\nimport {normalizeSingle} from '../helpers/sanitize/quotes';\nimport getMarkingsInSentence from '../helpers/highlighting/getMarkingsInSentence';\nimport matchWordFormsWithSentence from '../helpers/match/matchWordFormsWithSentence';\nimport isDoubleQuoted from '../helpers/match/isDoubleQuoted';\nimport {markWordsInASentence} from '../helpers/word/markWordsInSentences';\nimport getSentences from '../helpers/sentence/getSentences';\nimport {filterShortcodesFromHTML} from '../helpers';\n\n/**\n * Counts the occurrences of the keyphrase in the text and creates the Mark objects for the matches.\n *\n * @param {(Sentence|string)[]}\tsentences\t\t\tThe sentences to check.\n * @param {Array}\t\tkeyphraseForms\t\t\t\tThe keyphrase forms.\n * @param {string}\t\tlocale\t\t\t\t\t\tThe locale used in the analysis.\n * @param {function}\tmatchWordCustomHelper\t\tA custom helper to match words with a text.\n * @param {boolean}\t\tisExactMatchRequested\t\tWhether the exact matching is requested.\n * @param {function}\tcustomSplitIntoTokensHelper\tA custom helper to split sentences into tokens.\n *\n * @returns {{markings: Mark[], count: number}} The number of keyphrase occurrences in the text and the Mark objects of the matches.\n */\nexport function countKeyphraseInText(\n sentences,\n keyphraseForms,\n locale,\n matchWordCustomHelper,\n isExactMatchRequested,\n customSplitIntoTokensHelper\n) {\n const result = {count: 0, markings: []};\n\n sentences.forEach(sentence => {\n const matchesInSentence = keyphraseForms.map(wordForms =>\n matchWordFormsWithSentence(\n sentence,\n wordForms,\n locale,\n matchWordCustomHelper,\n isExactMatchRequested,\n customSplitIntoTokensHelper\n )\n );\n // A sentence has at least one full-match of the keyphrase if each word occurs at least once.\n const isEachWordFound = matchesInSentence.every(wordForms => wordForms.count > 0);\n\n if (isEachWordFound) {\n /*\n * Retrieve all the occurrences' count of each word of the keyphrase and save it in an array.\n * matches: [ [ { matches: [\"red\"], count: 1 } ], [ { matches: [\"pandas\"], count: 2 } ] ]\n * counts: [ 1, 2 ]\n */\n const counts = matchesInSentence.map(match => match.count);\n /*\n * The number of the full-match count is the lowest count of the occurrences.\n * counts: [ 1, 2 ]\n * totalMatchCount: 1\n *\n * From the example above, the full-match is 1, because one of the \"pandas\" occurrences is not accompanied by \"red\"\n * to be counted as a full-match.\n */\n const totalMatchCount = Math.min(...counts);\n const foundWords = flattenDeep(matchesInSentence.map(match => match.matches));\n\n let markings = [];\n\n if (matchWordCustomHelper) {\n // Currently, this check is only applicable for Japanese.\n markings = markWordsInASentence(sentence, foundWords, matchWordCustomHelper);\n } else {\n markings = getMarkingsInSentence(sentence, foundWords);\n }\n\n result.count += totalMatchCount;\n result.markings.push(markings);\n }\n });\n\n return result;\n}\n\n/**\n * Calculates the keyphrase count, takes morphology into account.\n *\n * @param {Paper} paper The paper containing keyphrase and text.\n * @param {Researcher} researcher The researcher.\n *\n * @returns {{count: number, markings: Mark[], keyphraseLength: number}} An object containing the keyphrase count, markings and the kephrase length.\n */\nexport default function getKeyphraseCount(paper, researcher) {\n const result = {count: 0, markings: [], keyphraseLength: 0};\n const topicForms = researcher.getResearch('morphology');\n let keyphraseForms = topicForms.keyphraseForms;\n const keyphraseLength = keyphraseForms.length;\n\n /*\n * Normalize single quotes so that word form with different type of single quotes can still be matched.\n * For example, \"key‛word\" should match \"key'word\".\n */\n keyphraseForms = keyphraseForms.map(word => word.map(form => normalizeSingle(form)));\n\n if (keyphraseLength === 0) {\n return result;\n }\n\n const matchWordCustomHelper = researcher.getHelper('matchWordCustomHelper');\n const customSentenceTokenizer = researcher.getHelper('memoizedTokenizer');\n const customSplitIntoTokensHelper = researcher.getHelper('splitIntoTokensCustom');\n const locale = paper.getLocale();\n const text = matchWordCustomHelper\n ? filterShortcodesFromHTML(paper.getText(), paper._attributes && paper._attributes.shortcodes)\n : paper.getText();\n\n // When the custom helper is available, we're using the sentences retrieved from the text for the analysis.\n const sentences = matchWordCustomHelper\n ? getSentences(text, customSentenceTokenizer)\n : getSentencesFromTree(paper);\n // Exact matching is requested when the keyphrase is enclosed in double quotes.\n const isExactMatchRequested = isDoubleQuoted(paper.getKeyword());\n\n /*\n * Count the amount of keyphrase occurrences in the sentences.\n * An occurrence is counted when all words of the keyphrase are contained within the sentence. Each sentence can contain multiple keyphrases.\n * (e.g. \"The apple potato is an apple and a potato.\" has two occurrences of the keyphrase \"apple potato\").\n */\n const keyphraseFound = countKeyphraseInText(\n sentences,\n keyphraseForms,\n locale,\n matchWordCustomHelper,\n isExactMatchRequested,\n customSplitIntoTokensHelper\n );\n\n result.count = keyphraseFound.count;\n result.markings = flatten(keyphraseFound.markings);\n result.keyphraseLength = keyphraseLength;\n\n return result;\n}\n\n/**\n * Calculates the keyphrase count, takes morphology into account.\n *\n * @deprecated Use getKeyphraseCount instead.\n *\n * @param {Paper} paper The paper containing keyphrase and text.\n * @param {Researcher} researcher The researcher.\n *\n * @returns {Object} An array of all the matches, markings and the keyphrase count.\n */\nexport function keywordCount(paper, researcher) {\n console.warn('This function is deprecated, use getKeyphraseCount instead.');\n return getKeyphraseCount(paper, researcher);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,7 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- exports.keywordCountInSlug = keywordCountInSlug;
8
- exports.keywordCountInUrl = keywordCountInUrl;
9
- var _parseSlug = _interopRequireDefault(require("../helpers/url/parseSlug"));
10
- var _findKeywordFormsInString = require("../helpers/match/findKeywordFormsInString.js");
11
- var _lodash = require("lodash");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
1
  /** @module researches/keywordCountInSlug */
2
+ import parseSlug from "../helpers/url/parseSlug";
3
+ import { findTopicFormsInString } from "../helpers/match/findKeywordFormsInString.js";
4
+ import { cloneDeep } from "lodash";
14
5
 
15
6
  /**
16
7
  * Matches the keyword in the slug. Replaces all dashes and underscores with whitespaces and uses whitespace as word boundary.
@@ -26,12 +17,12 @@ function keywordCountInSlug(paper, researcher) {
26
17
  * languages. This is because slugs usually use hyphens (or underscores) as word boundaries. So if only the slug is
27
18
  * split on hyphens and not the keyphrase forms, some keyphrase forms won't be found in the slug.
28
19
  */
29
- const languageResearcher = (0, _lodash.cloneDeep)(researcher);
20
+ const languageResearcher = cloneDeep(researcher);
30
21
  languageResearcher.addConfig("areHyphensWordBoundaries", true);
31
22
  const topicForms = languageResearcher.getResearch("morphology");
32
- const parsedSlug = (0, _parseSlug.default)(paper.getSlug());
23
+ const parsedSlug = parseSlug(paper.getSlug());
33
24
  const locale = paper.getLocale();
34
- const keyphraseInSlug = (0, _findKeywordFormsInString.findTopicFormsInString)(topicForms, parsedSlug, false, locale, false);
25
+ const keyphraseInSlug = findTopicFormsInString(topicForms, parsedSlug, false, locale, false);
35
26
  return {
36
27
  keyphraseLength: topicForms.keyphraseForms.length,
37
28
  percentWordMatches: keyphraseInSlug.percentWordMatches
@@ -54,5 +45,6 @@ function keywordCountInUrl(paper, researcher) {
54
45
  console.warn("This function is deprecated, use keywordCountInSlug instead.");
55
46
  return keywordCountInSlug(paper, researcher);
56
47
  }
57
- var _default = exports.default = keywordCountInSlug;
48
+ export { keywordCountInSlug, keywordCountInUrl };
49
+ export default keywordCountInSlug;
58
50
  //# sourceMappingURL=keywordCountInUrl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"keywordCountInUrl.js","names":["_parseSlug","_interopRequireDefault","require","_findKeywordFormsInString","_lodash","e","__esModule","default","keywordCountInSlug","paper","researcher","languageResearcher","cloneDeep","addConfig","topicForms","getResearch","parsedSlug","parseSlug","getSlug","locale","getLocale","keyphraseInSlug","findTopicFormsInString","keyphraseLength","keyphraseForms","length","percentWordMatches","keywordCountInUrl","console","warn","_default","exports"],"sources":["../../../src/languageProcessing/researches/keywordCountInUrl.js"],"sourcesContent":["/** @module researches/keywordCountInSlug */\nimport parseSlug from \"../helpers/url/parseSlug\";\nimport { findTopicFormsInString } from \"../helpers/match/findKeywordFormsInString.js\";\nimport { cloneDeep } from \"lodash\";\n\n/**\n * Matches the keyword in the slug. Replaces all dashes and underscores with whitespaces and uses whitespace as word boundary.\n *\n * @param {Paper} paper the Paper object to use in this count.\n * @param {Researcher} researcher The Researcher object containing all available researches.\n *\n * @returns {{keyphraseLength: int, percentWordMatches: int}} The length of the keyphrase and the percentage of keyphrase forms that has been found.\n */\nfunction keywordCountInSlug( paper, researcher ) {\n\t/*\n\t * We want to override the `areHyphensWordBoundaries` config value from the researcher so that it is `true` for all\n\t * languages. This is because slugs usually use hyphens (or underscores) as word boundaries. So if only the slug is\n\t * split on hyphens and not the keyphrase forms, some keyphrase forms won't be found in the slug.\n\t */\n\tconst languageResearcher = cloneDeep( researcher );\n\tlanguageResearcher.addConfig( \"areHyphensWordBoundaries\", true );\n\tconst topicForms = languageResearcher.getResearch( \"morphology\" );\n\n\tconst parsedSlug = parseSlug( paper.getSlug() );\n\tconst locale = paper.getLocale();\n\n\tconst keyphraseInSlug = findTopicFormsInString( topicForms, parsedSlug, false, locale, false );\n\n\treturn {\n\t\tkeyphraseLength: topicForms.keyphraseForms.length,\n\t\tpercentWordMatches: keyphraseInSlug.percentWordMatches,\n\t};\n}\n\n/**\n * Matches the keyword in the slug.\n * keywordCountInUrl was the previous name for keywordCountInSlug (hence the name of this file).\n * We keep (and expose) this research for backwards compatibility.\n *\n * @deprecated Since version 18.7. Use keywordCountInSlug instead.\n *\n * @param {Paper} paper the Paper object to use in this count.\n * @param {Researcher} researcher The Researcher object containing all available researches.\n *\n * @returns {{keyphraseLength: int, percentWordMatches: int}} The length of the keyphrase and the percentage of keyphrase forms that has been found.\n */\nfunction keywordCountInUrl( paper, researcher ) {\n\tconsole.warn( \"This function is deprecated, use keywordCountInSlug instead.\" );\n\treturn keywordCountInSlug( paper, researcher );\n}\n\nexport {\n\tkeywordCountInSlug,\n\tkeywordCountInUrl,\n};\n\nexport default keywordCountInSlug;\n"],"mappings":";;;;;;;;AACA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,yBAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAAmC,SAAAD,uBAAAI,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAHnC;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,kBAAkBA,CAAEC,KAAK,EAAEC,UAAU,EAAG;EAChD;AACD;AACA;AACA;AACA;EACC,MAAMC,kBAAkB,GAAG,IAAAC,iBAAS,EAAEF,UAAW,CAAC;EAClDC,kBAAkB,CAACE,SAAS,CAAE,0BAA0B,EAAE,IAAK,CAAC;EAChE,MAAMC,UAAU,GAAGH,kBAAkB,CAACI,WAAW,CAAE,YAAa,CAAC;EAEjE,MAAMC,UAAU,GAAG,IAAAC,kBAAS,EAAER,KAAK,CAACS,OAAO,CAAC,CAAE,CAAC;EAC/C,MAAMC,MAAM,GAAGV,KAAK,CAACW,SAAS,CAAC,CAAC;EAEhC,MAAMC,eAAe,GAAG,IAAAC,gDAAsB,EAAER,UAAU,EAAEE,UAAU,EAAE,KAAK,EAAEG,MAAM,EAAE,KAAM,CAAC;EAE9F,OAAO;IACNI,eAAe,EAAET,UAAU,CAACU,cAAc,CAACC,MAAM;IACjDC,kBAAkB,EAAEL,eAAe,CAACK;EACrC,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAAElB,KAAK,EAAEC,UAAU,EAAG;EAC/CkB,OAAO,CAACC,IAAI,CAAE,8DAA+D,CAAC;EAC9E,OAAOrB,kBAAkB,CAAEC,KAAK,EAAEC,UAAW,CAAC;AAC/C;AAAC,IAAAoB,QAAA,GAAAC,OAAA,CAAAxB,OAAA,GAOcC,kBAAkB","ignoreList":[]}
1
+ {"version":3,"file":"keywordCountInUrl.js","names":["parseSlug","findTopicFormsInString","cloneDeep","keywordCountInSlug","paper","researcher","languageResearcher","addConfig","topicForms","getResearch","parsedSlug","getSlug","locale","getLocale","keyphraseInSlug","keyphraseLength","keyphraseForms","length","percentWordMatches","keywordCountInUrl","console","warn"],"sources":["../../../src/languageProcessing/researches/keywordCountInUrl.js"],"sourcesContent":["/** @module researches/keywordCountInSlug */\nimport parseSlug from \"../helpers/url/parseSlug\";\nimport { findTopicFormsInString } from \"../helpers/match/findKeywordFormsInString.js\";\nimport { cloneDeep } from \"lodash\";\n\n/**\n * Matches the keyword in the slug. Replaces all dashes and underscores with whitespaces and uses whitespace as word boundary.\n *\n * @param {Paper} paper the Paper object to use in this count.\n * @param {Researcher} researcher The Researcher object containing all available researches.\n *\n * @returns {{keyphraseLength: int, percentWordMatches: int}} The length of the keyphrase and the percentage of keyphrase forms that has been found.\n */\nfunction keywordCountInSlug( paper, researcher ) {\n\t/*\n\t * We want to override the `areHyphensWordBoundaries` config value from the researcher so that it is `true` for all\n\t * languages. This is because slugs usually use hyphens (or underscores) as word boundaries. So if only the slug is\n\t * split on hyphens and not the keyphrase forms, some keyphrase forms won't be found in the slug.\n\t */\n\tconst languageResearcher = cloneDeep( researcher );\n\tlanguageResearcher.addConfig( \"areHyphensWordBoundaries\", true );\n\tconst topicForms = languageResearcher.getResearch( \"morphology\" );\n\n\tconst parsedSlug = parseSlug( paper.getSlug() );\n\tconst locale = paper.getLocale();\n\n\tconst keyphraseInSlug = findTopicFormsInString( topicForms, parsedSlug, false, locale, false );\n\n\treturn {\n\t\tkeyphraseLength: topicForms.keyphraseForms.length,\n\t\tpercentWordMatches: keyphraseInSlug.percentWordMatches,\n\t};\n}\n\n/**\n * Matches the keyword in the slug.\n * keywordCountInUrl was the previous name for keywordCountInSlug (hence the name of this file).\n * We keep (and expose) this research for backwards compatibility.\n *\n * @deprecated Since version 18.7. Use keywordCountInSlug instead.\n *\n * @param {Paper} paper the Paper object to use in this count.\n * @param {Researcher} researcher The Researcher object containing all available researches.\n *\n * @returns {{keyphraseLength: int, percentWordMatches: int}} The length of the keyphrase and the percentage of keyphrase forms that has been found.\n */\nfunction keywordCountInUrl( paper, researcher ) {\n\tconsole.warn( \"This function is deprecated, use keywordCountInSlug instead.\" );\n\treturn keywordCountInSlug( paper, researcher );\n}\n\nexport {\n\tkeywordCountInSlug,\n\tkeywordCountInUrl,\n};\n\nexport default keywordCountInSlug;\n"],"mappings":"AAAA;AACA,OAAOA,SAAS;AAChB,SAASC,sBAAsB;AAC/B,SAASC,SAAS,QAAQ,QAAQ;;AAElC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,kBAAkBA,CAAEC,KAAK,EAAEC,UAAU,EAAG;EAChD;AACD;AACA;AACA;AACA;EACC,MAAMC,kBAAkB,GAAGJ,SAAS,CAAEG,UAAW,CAAC;EAClDC,kBAAkB,CAACC,SAAS,CAAE,0BAA0B,EAAE,IAAK,CAAC;EAChE,MAAMC,UAAU,GAAGF,kBAAkB,CAACG,WAAW,CAAE,YAAa,CAAC;EAEjE,MAAMC,UAAU,GAAGV,SAAS,CAAEI,KAAK,CAACO,OAAO,CAAC,CAAE,CAAC;EAC/C,MAAMC,MAAM,GAAGR,KAAK,CAACS,SAAS,CAAC,CAAC;EAEhC,MAAMC,eAAe,GAAGb,sBAAsB,CAAEO,UAAU,EAAEE,UAAU,EAAE,KAAK,EAAEE,MAAM,EAAE,KAAM,CAAC;EAE9F,OAAO;IACNG,eAAe,EAAEP,UAAU,CAACQ,cAAc,CAACC,MAAM;IACjDC,kBAAkB,EAAEJ,eAAe,CAACI;EACrC,CAAC;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAAEf,KAAK,EAAEC,UAAU,EAAG;EAC/Ce,OAAO,CAACC,IAAI,CAAE,8DAA+D,CAAC;EAC9E,OAAOlB,kBAAkB,CAAEC,KAAK,EAAEC,UAAW,CAAC;AAC/C;AAEA,SACCF,kBAAkB,EAClBgB,iBAAiB;AAGlB,eAAehB,kBAAkB","ignoreList":[]}
@@ -1,15 +1,9 @@
1
- "use strict";
1
+ import { getSubheadingContentsTopLevel } from "../helpers/html/getSubheadings";
2
+ import stripSomeTags from "../helpers/sanitize/stripNonTextTags";
3
+ import { findTopicFormsInString } from "../helpers/match/findKeywordFormsInString";
4
+ import removeHtmlBlocks from "../helpers/html/htmlParser";
5
+ import { filterShortcodesFromHTML } from "../helpers";
2
6
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = matchKeywordInSubheadings;
7
- var _getSubheadings = require("../helpers/html/getSubheadings");
8
- var _stripNonTextTags = _interopRequireDefault(require("../helpers/sanitize/stripNonTextTags"));
9
- var _findKeywordFormsInString = require("../helpers/match/findKeywordFormsInString");
10
- var _htmlParser = _interopRequireDefault(require("../helpers/html/htmlParser"));
11
- var _helpers = require("../helpers");
12
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
7
  /**
14
8
  * Computes the amount of subheadings reflecting the topic.
15
9
  *
@@ -24,7 +18,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
24
18
  */
25
19
  const numberOfSubheadingsReflectingTopic = function (topicForms, subheadings, useSynonyms, locale, functionWords, matchWordCustomHelper) {
26
20
  return subheadings.filter(subheading => {
27
- const matchedTopicForms = (0, _findKeywordFormsInString.findTopicFormsInString)(topicForms, subheading, useSynonyms, locale, matchWordCustomHelper);
21
+ const matchedTopicForms = findTopicFormsInString(topicForms, subheading, useSynonyms, locale, matchWordCustomHelper);
28
22
  if (functionWords.length === 0) {
29
23
  return matchedTopicForms.percentWordMatches === 100;
30
24
  }
@@ -40,16 +34,17 @@ const numberOfSubheadingsReflectingTopic = function (topicForms, subheadings, us
40
34
  *
41
35
  * @returns {Object} The result object.
42
36
  */
43
- function matchKeywordInSubheadings(paper, researcher) {
44
- const functionWords = researcher.getConfig("functionWords");
37
+ export default function matchKeywordInSubheadings(paper, researcher) {
38
+ const functionWords = researcher.getConfig('functionWords');
45
39
 
46
40
  // A custom helper to match word in text.
47
- const matchWordCustomHelper = researcher.getHelper("matchWordCustomHelper");
41
+ const matchWordCustomHelper = researcher.getHelper('matchWordCustomHelper');
48
42
  let text = paper.getText();
49
- text = (0, _htmlParser.default)(text);
50
- text = (0, _helpers.filterShortcodesFromHTML)(text, paper._attributes && paper._attributes.shortcodes);
51
- text = (0, _stripNonTextTags.default)(text);
52
- const topicForms = researcher.getResearch("morphology");
43
+ text = removeHtmlBlocks(text);
44
+ text = filterShortcodesFromHTML(text, paper._attributes && paper._attributes.shortcodes);
45
+ text = stripSomeTags(text);
46
+ text = text.replace(/\s+/g, ' ').trim();
47
+ const topicForms = researcher.getResearch('morphology');
53
48
  const locale = paper.getLocale();
54
49
  const result = {
55
50
  count: 0,
@@ -57,7 +52,7 @@ function matchKeywordInSubheadings(paper, researcher) {
57
52
  percentReflectingTopic: 0
58
53
  };
59
54
  const useSynonyms = true;
60
- const subheadings = (0, _getSubheadings.getSubheadingContentsTopLevel)(text);
55
+ const subheadings = getSubheadingContentsTopLevel(text);
61
56
  if (subheadings.length !== 0) {
62
57
  result.count = subheadings.length;
63
58
  result.matches = numberOfSubheadingsReflectingTopic(topicForms, subheadings, useSynonyms, locale, functionWords, matchWordCustomHelper);