axyseo 2.0.0-alpha.0.0.4 → 2.0.0-alpha.0.0.5

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 (637) hide show
  1. package/package.json +5 -2
  2. package/.browserslistrc +0 -1
  3. package/.gitattributes +0 -1
  4. package/babel.config.js +0 -3
  5. package/eslint.config.mjs +0 -119
  6. package/src/bundledPlugins/index.js +0 -5
  7. package/src/bundledPlugins/previouslyUsedKeywords.js +0 -192
  8. package/src/config/diacritics.js +0 -106
  9. package/src/config/getTransliterations.js +0 -1447
  10. package/src/config/transliterationsWPstyle.js +0 -774
  11. package/src/config/wordBoundaries.js +0 -23
  12. package/src/config/wordBoundariesWithoutPunctuation.js +0 -9
  13. package/src/const/analysis.js +0 -41
  14. package/src/errors/invalidType.js +0 -14
  15. package/src/errors/missingArgument.js +0 -14
  16. package/src/helpers/createMeasurementElement.js +0 -40
  17. package/src/helpers/domManipulation.js +0 -65
  18. package/src/helpers/errors.js +0 -26
  19. package/src/helpers/factory.js +0 -219
  20. package/src/helpers/formatNumber.js +0 -12
  21. package/src/helpers/formatString.js +0 -33
  22. package/src/helpers/getLanguagesWithWordComplexity.js +0 -8
  23. package/src/helpers/getLanguagesWithWordFormSupport.js +0 -11
  24. package/src/helpers/getWordComplexityConfig.js +0 -20
  25. package/src/helpers/getWordComplexityHelper.js +0 -20
  26. package/src/helpers/htmlEntities.js +0 -41
  27. package/src/helpers/includesAny.js +0 -19
  28. package/src/helpers/index.js +0 -127
  29. package/src/helpers/shortlinker/Shortlinker.js +0 -75
  30. package/src/helpers/shortlinker/index.js +0 -1
  31. package/src/helpers/shortlinker/singleton.js +0 -68
  32. package/src/helpers/types.js +0 -34
  33. package/src/index.js +0 -60
  34. package/src/languageProcessing/AbstractResearcher.js +0 -366
  35. package/src/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +0 -125
  36. package/src/languageProcessing/helpers/html/getFieldsToMark.js +0 -29
  37. package/src/languageProcessing/helpers/html/getSubheadingTexts.js +0 -47
  38. package/src/languageProcessing/helpers/html/getSubheadings.js +0 -95
  39. package/src/languageProcessing/helpers/html/html.js +0 -176
  40. package/src/languageProcessing/helpers/html/htmlParser.js +0 -145
  41. package/src/languageProcessing/helpers/html/matchParagraphs.js +0 -62
  42. package/src/languageProcessing/helpers/html/normalizeHTML.js +0 -16
  43. package/src/languageProcessing/helpers/image/getAltAttribute.js +0 -20
  44. package/src/languageProcessing/helpers/image/getImagesInTree.js +0 -16
  45. package/src/languageProcessing/helpers/image/imageInText.js +0 -19
  46. package/src/languageProcessing/helpers/index.js +0 -12
  47. package/src/languageProcessing/helpers/language/getLanguage.js +0 -9
  48. package/src/languageProcessing/helpers/link/checkNofollow.js +0 -38
  49. package/src/languageProcessing/helpers/link/getAnchorsFromText.js +0 -32
  50. package/src/languageProcessing/helpers/link/getLinkType.js +0 -32
  51. package/src/languageProcessing/helpers/match/findKeywordFormsInString.js +0 -101
  52. package/src/languageProcessing/helpers/match/isDoubleQuoted.js +0 -13
  53. package/src/languageProcessing/helpers/match/matchTextWithArray.js +0 -36
  54. package/src/languageProcessing/helpers/match/matchTextWithTransliteration.js +0 -58
  55. package/src/languageProcessing/helpers/match/matchTextWithWord.js +0 -45
  56. package/src/languageProcessing/helpers/match/matchWordFormsWithSentence.js +0 -164
  57. package/src/languageProcessing/helpers/match/processExactMatchRequest.js +0 -20
  58. package/src/languageProcessing/helpers/morphology/baseStemmer.js +0 -11
  59. package/src/languageProcessing/helpers/morphology/buildFormRule.js +0 -19
  60. package/src/languageProcessing/helpers/morphology/buildTopicStems.js +0 -169
  61. package/src/languageProcessing/helpers/morphology/createRulesFromArrays.js +0 -45
  62. package/src/languageProcessing/helpers/morphology/exceptionListHelpers.js +0 -65
  63. package/src/languageProcessing/helpers/morphology/findMatchingEndingInArray.js +0 -24
  64. package/src/languageProcessing/helpers/morphology/flattenSortLength.js +0 -14
  65. package/src/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +0 -39
  66. package/src/languageProcessing/helpers/morphology/regexHelpers.js +0 -44
  67. package/src/languageProcessing/helpers/morphology/stemHelpers.js +0 -38
  68. package/src/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js +0 -31
  69. package/src/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js +0 -36
  70. package/src/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js +0 -113
  71. package/src/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js +0 -45
  72. package/src/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js +0 -231
  73. package/src/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js +0 -20
  74. package/src/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js +0 -23
  75. package/src/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js +0 -40
  76. package/src/languageProcessing/helpers/prominentWords/determineProminentWords.js +0 -238
  77. package/src/languageProcessing/helpers/regex/createRegexFromArray.js +0 -35
  78. package/src/languageProcessing/helpers/regex/createRegexFromDoubleArray.js +0 -34
  79. package/src/languageProcessing/helpers/regex/createWordRegex.js +0 -30
  80. package/src/languageProcessing/helpers/regex/matchStringWithRegex.js +0 -19
  81. package/src/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js +0 -14
  82. package/src/languageProcessing/helpers/sanitize/doubleQuotes.js +0 -12
  83. package/src/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js +0 -131
  84. package/src/languageProcessing/helpers/sanitize/mergeListItems.js +0 -24
  85. package/src/languageProcessing/helpers/sanitize/parseSynonyms.js +0 -20
  86. package/src/languageProcessing/helpers/sanitize/quotes.js +0 -46
  87. package/src/languageProcessing/helpers/sanitize/removeEmailAddresses.js +0 -12
  88. package/src/languageProcessing/helpers/sanitize/removePunctuation.js +0 -64
  89. package/src/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js +0 -18
  90. package/src/languageProcessing/helpers/sanitize/removeSentenceTerminators.js +0 -13
  91. package/src/languageProcessing/helpers/sanitize/removeURLs.js +0 -13
  92. package/src/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js +0 -11
  93. package/src/languageProcessing/helpers/sanitize/sanitizeString.js +0 -18
  94. package/src/languageProcessing/helpers/sanitize/stripHTMLTags.js +0 -57
  95. package/src/languageProcessing/helpers/sanitize/stripNonTextTags.js +0 -15
  96. package/src/languageProcessing/helpers/sanitize/stripNumbers.js +0 -21
  97. package/src/languageProcessing/helpers/sanitize/stripSpaces.js +0 -23
  98. package/src/languageProcessing/helpers/sanitize/stripWordBoundaries.js +0 -65
  99. package/src/languageProcessing/helpers/sanitize/unifyWhitespace.js +0 -61
  100. package/src/languageProcessing/helpers/sentence/SentenceTokenizer.js +0 -640
  101. package/src/languageProcessing/helpers/sentence/countSentences.js +0 -20
  102. package/src/languageProcessing/helpers/sentence/getSentences.js +0 -65
  103. package/src/languageProcessing/helpers/sentence/getSentencesFromTree.js +0 -55
  104. package/src/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js +0 -28
  105. package/src/languageProcessing/helpers/sentence/sentencesLength.js +0 -31
  106. package/src/languageProcessing/helpers/syllables/DeviationFragment.js +0 -112
  107. package/src/languageProcessing/helpers/syllables/countSyllables.js +0 -182
  108. package/src/languageProcessing/helpers/syllables/syllableCountIterator.js +0 -56
  109. package/src/languageProcessing/helpers/syllables/syllableCountStep.js +0 -68
  110. package/src/languageProcessing/helpers/transform/transformWordsWithHyphens.js +0 -17
  111. package/src/languageProcessing/helpers/transliterate/replaceDiacritics.js +0 -22
  112. package/src/languageProcessing/helpers/transliterate/specialCharacterMappings.js +0 -214
  113. package/src/languageProcessing/helpers/transliterate/transliterate.js +0 -20
  114. package/src/languageProcessing/helpers/transliterate/transliterateWPstyle.js +0 -21
  115. package/src/languageProcessing/helpers/url/parseSlug.js +0 -10
  116. package/src/languageProcessing/helpers/url/url.js +0 -172
  117. package/src/languageProcessing/helpers/word/addWordboundary.js +0 -37
  118. package/src/languageProcessing/helpers/word/areWordsInSentence.js +0 -16
  119. package/src/languageProcessing/helpers/word/countMetaDescriptionLength.js +0 -18
  120. package/src/languageProcessing/helpers/word/countWords.js +0 -14
  121. package/src/languageProcessing/helpers/word/createPunctuationTokens.js +0 -42
  122. package/src/languageProcessing/helpers/word/filterWordsFromArray.js +0 -15
  123. package/src/languageProcessing/helpers/word/followsIndex.js +0 -25
  124. package/src/languageProcessing/helpers/word/getAllWordsFromTree.js +0 -23
  125. package/src/languageProcessing/helpers/word/getWords.js +0 -43
  126. package/src/languageProcessing/helpers/word/includesIndex.js +0 -30
  127. package/src/languageProcessing/helpers/word/indices.js +0 -146
  128. package/src/languageProcessing/helpers/word/markWordsInSentences.js +0 -173
  129. package/src/languageProcessing/helpers/word/matchWordInSentence.js +0 -61
  130. package/src/languageProcessing/helpers/word/splitIntoTokens.js +0 -46
  131. package/src/languageProcessing/index.js +0 -91
  132. package/src/languageProcessing/languages/_default/Researcher.js +0 -34
  133. package/src/languageProcessing/languages/_default/helpers/getStemmer.js +0 -11
  134. package/src/languageProcessing/languages/ar/Researcher.js +0 -46
  135. package/src/languageProcessing/languages/ar/config/firstWordExceptions.js +0 -14
  136. package/src/languageProcessing/languages/ar/config/functionWords.js +0 -329
  137. package/src/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js +0 -570
  138. package/src/languageProcessing/languages/ar/config/prefixedFunctionWords.js +0 -5
  139. package/src/languageProcessing/languages/ar/config/transitionWords.js +0 -19
  140. package/src/languageProcessing/languages/ar/config/twoPartTransitionWords.js +0 -7
  141. package/src/languageProcessing/languages/ar/helpers/createBasicWordForms.js +0 -32
  142. package/src/languageProcessing/languages/ar/helpers/getStemmer.js +0 -22
  143. package/src/languageProcessing/languages/ar/helpers/internal/stem.js +0 -632
  144. package/src/languageProcessing/languages/ar/helpers/isPassiveSentence.js +0 -33
  145. package/src/languageProcessing/languages/ca/Researcher.js +0 -43
  146. package/src/languageProcessing/languages/ca/config/sentenceLength.js +0 -3
  147. package/src/languageProcessing/languages/ca/config/transitionWords.js +0 -31
  148. package/src/languageProcessing/languages/ca/config/twoPartTransitionWords.js +0 -7
  149. package/src/languageProcessing/languages/ca/helpers/getStemmer.js +0 -11
  150. package/src/languageProcessing/languages/cs/Researcher.js +0 -44
  151. package/src/languageProcessing/languages/cs/config/firstWordExceptions.js +0 -15
  152. package/src/languageProcessing/languages/cs/config/functionWords.js +0 -121
  153. package/src/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js +0 -38
  154. package/src/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js +0 -54
  155. package/src/languageProcessing/languages/cs/config/stopWords.js +0 -42
  156. package/src/languageProcessing/languages/cs/config/transitionWords.js +0 -26
  157. package/src/languageProcessing/languages/cs/config/twoPartTransitionWords.js +0 -8
  158. package/src/languageProcessing/languages/cs/helpers/getClauses.js +0 -26
  159. package/src/languageProcessing/languages/cs/helpers/getStemmer.js +0 -22
  160. package/src/languageProcessing/languages/cs/helpers/internal/getParticiples.js +0 -16
  161. package/src/languageProcessing/languages/cs/helpers/internal/stem.js +0 -499
  162. package/src/languageProcessing/languages/cs/values/Clause.js +0 -34
  163. package/src/languageProcessing/languages/de/Researcher.js +0 -52
  164. package/src/languageProcessing/languages/de/config/firstWordExceptions.js +0 -17
  165. package/src/languageProcessing/languages/de/config/functionWords.js +0 -303
  166. package/src/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js +0 -2231
  167. package/src/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js +0 -96
  168. package/src/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js +0 -368
  169. package/src/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js +0 -72
  170. package/src/languageProcessing/languages/de/config/keyphraseLength.js +0 -11
  171. package/src/languageProcessing/languages/de/config/stopWords.js +0 -67
  172. package/src/languageProcessing/languages/de/config/syllables.json +0 -460
  173. package/src/languageProcessing/languages/de/config/transitionWords.js +0 -31
  174. package/src/languageProcessing/languages/de/config/twoPartTransitionWords.js +0 -12
  175. package/src/languageProcessing/languages/de/config/wordComplexity.js +0 -4
  176. package/src/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +0 -18
  177. package/src/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js +0 -40
  178. package/src/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js +0 -15
  179. package/src/languageProcessing/languages/de/helpers/getClauses.js +0 -25
  180. package/src/languageProcessing/languages/de/helpers/getStemmer.js +0 -22
  181. package/src/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js +0 -31
  182. package/src/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js +0 -128
  183. package/src/languageProcessing/languages/de/helpers/internal/determineStem.js +0 -128
  184. package/src/languageProcessing/languages/de/helpers/internal/getParticiples.js +0 -40
  185. package/src/languageProcessing/languages/de/helpers/internal/stem.js +0 -215
  186. package/src/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js +0 -28
  187. package/src/languageProcessing/languages/de/values/Clause.js +0 -85
  188. package/src/languageProcessing/languages/el/Researcher.js +0 -46
  189. package/src/languageProcessing/languages/el/config/firstWordExceptions.js +0 -47
  190. package/src/languageProcessing/languages/el/config/functionWords.js +0 -116
  191. package/src/languageProcessing/languages/el/config/internal/auxiliaries.js +0 -19
  192. package/src/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js +0 -87
  193. package/src/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js +0 -138
  194. package/src/languageProcessing/languages/el/config/stopWords.js +0 -854
  195. package/src/languageProcessing/languages/el/config/transitionWords.js +0 -26
  196. package/src/languageProcessing/languages/el/config/twoPartTransitionWords.js +0 -10
  197. package/src/languageProcessing/languages/el/helpers/getClauses.js +0 -25
  198. package/src/languageProcessing/languages/el/helpers/getStemmer.js +0 -21
  199. package/src/languageProcessing/languages/el/helpers/internal/getParticiples.js +0 -20
  200. package/src/languageProcessing/languages/el/helpers/internal/stem.js +0 -368
  201. package/src/languageProcessing/languages/el/helpers/isPassiveSentence.js +0 -38
  202. package/src/languageProcessing/languages/el/values/Clause.js +0 -37
  203. package/src/languageProcessing/languages/en/Researcher.js +0 -46
  204. package/src/languageProcessing/languages/en/config/abbreviations.js +0 -55
  205. package/src/languageProcessing/languages/en/config/firstWordExceptions.js +0 -14
  206. package/src/languageProcessing/languages/en/config/functionWords.js +0 -186
  207. package/src/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js +0 -44
  208. package/src/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js +0 -354
  209. package/src/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js +0 -3047
  210. package/src/languageProcessing/languages/en/config/regularParticiplesRegex.js +0 -5
  211. package/src/languageProcessing/languages/en/config/stopWords.js +0 -52
  212. package/src/languageProcessing/languages/en/config/syllables.json +0 -86
  213. package/src/languageProcessing/languages/en/config/transitionWords.js +0 -48
  214. package/src/languageProcessing/languages/en/config/twoPartTransitionWords.js +0 -7
  215. package/src/languageProcessing/languages/en/config/wordComplexity.js +0 -5
  216. package/src/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +0 -18
  217. package/src/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js +0 -43
  218. package/src/languageProcessing/languages/en/helpers/getClauses.js +0 -49
  219. package/src/languageProcessing/languages/en/helpers/getStemmer.js +0 -22
  220. package/src/languageProcessing/languages/en/helpers/internal/determineStem.js +0 -178
  221. package/src/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +0 -162
  222. package/src/languageProcessing/languages/en/helpers/internal/getParticiples.js +0 -25
  223. package/src/languageProcessing/languages/en/helpers/internal/getVerbStem.js +0 -237
  224. package/src/languageProcessing/languages/en/values/Clause.js +0 -68
  225. package/src/languageProcessing/languages/es/Researcher.js +0 -48
  226. package/src/languageProcessing/languages/es/config/firstWordExceptions.js +0 -16
  227. package/src/languageProcessing/languages/es/config/functionWords.js +0 -321
  228. package/src/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js +0 -60
  229. package/src/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js +0 -7327
  230. package/src/languageProcessing/languages/es/config/sentenceLength.js +0 -3
  231. package/src/languageProcessing/languages/es/config/stopWords.js +0 -33
  232. package/src/languageProcessing/languages/es/config/syllables.json +0 -176
  233. package/src/languageProcessing/languages/es/config/transitionWords.js +0 -40
  234. package/src/languageProcessing/languages/es/config/twoPartTransitionWords.js +0 -10
  235. package/src/languageProcessing/languages/es/config/wordComplexity.js +0 -4
  236. package/src/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +0 -18
  237. package/src/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js +0 -56
  238. package/src/languageProcessing/languages/es/helpers/getClauses.js +0 -29
  239. package/src/languageProcessing/languages/es/helpers/getStemmer.js +0 -22
  240. package/src/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +0 -41
  241. package/src/languageProcessing/languages/es/helpers/internal/getParticiples.js +0 -35
  242. package/src/languageProcessing/languages/es/helpers/internal/stem.js +0 -793
  243. package/src/languageProcessing/languages/es/values/Clause.js +0 -47
  244. package/src/languageProcessing/languages/fa/Researcher.js +0 -47
  245. package/src/languageProcessing/languages/fa/config/firstWordExceptions.js +0 -12
  246. package/src/languageProcessing/languages/fa/config/functionWords.js +0 -122
  247. package/src/languageProcessing/languages/fa/config/internal/participles.js +0 -1429
  248. package/src/languageProcessing/languages/fa/config/sentenceLength.js +0 -3
  249. package/src/languageProcessing/languages/fa/config/transitionWords.js +0 -20
  250. package/src/languageProcessing/languages/fa/config/twoPartTransitionWords.js +0 -9
  251. package/src/languageProcessing/languages/fa/helpers/createBasicWordForms.js +0 -97
  252. package/src/languageProcessing/languages/fa/helpers/getStemmer.js +0 -13
  253. package/src/languageProcessing/languages/fa/helpers/isPassiveSentence.js +0 -14
  254. package/src/languageProcessing/languages/fr/Researcher.js +0 -46
  255. package/src/languageProcessing/languages/fr/config/firstWordExceptions.js +0 -16
  256. package/src/languageProcessing/languages/fr/config/functionWords.js +0 -281
  257. package/src/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js +0 -1510
  258. package/src/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js +0 -108
  259. package/src/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js +0 -565
  260. package/src/languageProcessing/languages/fr/config/stopWords.js +0 -119
  261. package/src/languageProcessing/languages/fr/config/syllables.json +0 -1426
  262. package/src/languageProcessing/languages/fr/config/transitionWords.js +0 -59
  263. package/src/languageProcessing/languages/fr/config/twoPartTransitionWords.js +0 -15
  264. package/src/languageProcessing/languages/fr/config/wordComplexity.js +0 -4
  265. package/src/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +0 -18
  266. package/src/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js +0 -67
  267. package/src/languageProcessing/languages/fr/helpers/getClauses.js +0 -34
  268. package/src/languageProcessing/languages/fr/helpers/getStemmer.js +0 -22
  269. package/src/languageProcessing/languages/fr/helpers/internal/getParticiples.js +0 -72
  270. package/src/languageProcessing/languages/fr/helpers/internal/stem.js +0 -633
  271. package/src/languageProcessing/languages/fr/values/Clause.js +0 -96
  272. package/src/languageProcessing/languages/he/Researcher.js +0 -50
  273. package/src/languageProcessing/languages/he/config/firstWordExceptions.js +0 -13
  274. package/src/languageProcessing/languages/he/config/functionWords.js +0 -564
  275. package/src/languageProcessing/languages/he/config/internal/regularRootsHufal.js +0 -186
  276. package/src/languageProcessing/languages/he/config/internal/regularRootsNifal.js +0 -195
  277. package/src/languageProcessing/languages/he/config/internal/regularRootsPual.js +0 -168
  278. package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js +0 -188
  279. package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js +0 -197
  280. package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js +0 -170
  281. package/src/languageProcessing/languages/he/config/prefixedFunctionWords.js +0 -2
  282. package/src/languageProcessing/languages/he/config/sentenceLength.js +0 -3
  283. package/src/languageProcessing/languages/he/config/transitionWords.js +0 -28
  284. package/src/languageProcessing/languages/he/config/twoPartTransitionWords.js +0 -8
  285. package/src/languageProcessing/languages/he/helpers/createBasicWordForms.js +0 -33
  286. package/src/languageProcessing/languages/he/helpers/getStemmer.js +0 -22
  287. package/src/languageProcessing/languages/he/helpers/internal/stem.js +0 -52
  288. package/src/languageProcessing/languages/he/helpers/isPassiveSentence.js +0 -96
  289. package/src/languageProcessing/languages/he/helpers/stem.js +0 -52
  290. package/src/languageProcessing/languages/hu/Researcher.js +0 -48
  291. package/src/languageProcessing/languages/hu/config/firstWordExceptions.js +0 -31
  292. package/src/languageProcessing/languages/hu/config/functionWords.js +0 -284
  293. package/src/languageProcessing/languages/hu/config/internal/auxiliaries.js +0 -97
  294. package/src/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js +0 -125
  295. package/src/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js +0 -265
  296. package/src/languageProcessing/languages/hu/config/internal/odikVerbs.js +0 -273
  297. package/src/languageProcessing/languages/hu/config/internal/participles.js +0 -412
  298. package/src/languageProcessing/languages/hu/config/stopWords.js +0 -213
  299. package/src/languageProcessing/languages/hu/config/transitionWords.js +0 -42
  300. package/src/languageProcessing/languages/hu/config/twoPartTransitionWords.js +0 -34
  301. package/src/languageProcessing/languages/hu/helpers/getClauses.js +0 -25
  302. package/src/languageProcessing/languages/hu/helpers/getStemmer.js +0 -22
  303. package/src/languageProcessing/languages/hu/helpers/internal/getParticiples.js +0 -21
  304. package/src/languageProcessing/languages/hu/helpers/internal/stem.js +0 -389
  305. package/src/languageProcessing/languages/hu/helpers/isPassiveSentence.js +0 -54
  306. package/src/languageProcessing/languages/hu/values/Clause.js +0 -41
  307. package/src/languageProcessing/languages/id/Researcher.js +0 -46
  308. package/src/languageProcessing/languages/id/config/firstWordExceptions.js +0 -13
  309. package/src/languageProcessing/languages/id/config/functionWords.js +0 -202
  310. package/src/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js +0 -215
  311. package/src/languageProcessing/languages/id/config/transitionWords.js +0 -62
  312. package/src/languageProcessing/languages/id/config/twoPartTransitionWords.js +0 -13
  313. package/src/languageProcessing/languages/id/helpers/getStemmer.js +0 -22
  314. package/src/languageProcessing/languages/id/helpers/internal/stem.js +0 -462
  315. package/src/languageProcessing/languages/id/helpers/internal/stemHelpers.js +0 -78
  316. package/src/languageProcessing/languages/id/helpers/isPassiveSentence.js +0 -39
  317. package/src/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js +0 -47
  318. package/src/languageProcessing/languages/it/Researcher.js +0 -48
  319. package/src/languageProcessing/languages/it/config/firstWordExceptions.js +0 -17
  320. package/src/languageProcessing/languages/it/config/functionWords.js +0 -277
  321. package/src/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js +0 -98
  322. package/src/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js +0 -7197
  323. package/src/languageProcessing/languages/it/config/sentenceLength.js +0 -3
  324. package/src/languageProcessing/languages/it/config/stopWords.js +0 -57
  325. package/src/languageProcessing/languages/it/config/syllables.json +0 -573
  326. package/src/languageProcessing/languages/it/config/transitionWords.js +0 -104
  327. package/src/languageProcessing/languages/it/config/twoPartTransitionWords.js +0 -9
  328. package/src/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js +0 -15
  329. package/src/languageProcessing/languages/it/helpers/getClauses.js +0 -32
  330. package/src/languageProcessing/languages/it/helpers/getStemmer.js +0 -22
  331. package/src/languageProcessing/languages/it/helpers/internal/getParticiples.js +0 -34
  332. package/src/languageProcessing/languages/it/helpers/internal/stem.js +0 -436
  333. package/src/languageProcessing/languages/it/values/Clause.js +0 -47
  334. package/src/languageProcessing/languages/ja/Researcher.js +0 -86
  335. package/src/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js +0 -4
  336. package/src/languageProcessing/languages/ja/config/firstWordExceptions.js +0 -8
  337. package/src/languageProcessing/languages/ja/config/functionWords.js +0 -563
  338. package/src/languageProcessing/languages/ja/config/keyphraseLength.js +0 -16
  339. package/src/languageProcessing/languages/ja/config/metaDescriptionLength.js +0 -4
  340. package/src/languageProcessing/languages/ja/config/paragraphLength.js +0 -10
  341. package/src/languageProcessing/languages/ja/config/sentenceLength.js +0 -4
  342. package/src/languageProcessing/languages/ja/config/subheadingsTooLong.js +0 -18
  343. package/src/languageProcessing/languages/ja/config/textLength.js +0 -47
  344. package/src/languageProcessing/languages/ja/config/topicLength.js +0 -5
  345. package/src/languageProcessing/languages/ja/config/transitionWords.js +0 -354
  346. package/src/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js +0 -98
  347. package/src/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js +0 -19
  348. package/src/languageProcessing/languages/ja/customResearches/getWordForms.js +0 -50
  349. package/src/languageProcessing/languages/ja/customResearches/textLength.js +0 -24
  350. package/src/languageProcessing/languages/ja/helpers/countCharacters.js +0 -19
  351. package/src/languageProcessing/languages/ja/helpers/customGetStemmer.js +0 -21
  352. package/src/languageProcessing/languages/ja/helpers/getContentWords.js +0 -21
  353. package/src/languageProcessing/languages/ja/helpers/getWords.js +0 -31
  354. package/src/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js +0 -102
  355. package/src/languageProcessing/languages/ja/helpers/internal/createWordForms.js +0 -68
  356. package/src/languageProcessing/languages/ja/helpers/internal/determineStem.js +0 -17
  357. package/src/languageProcessing/languages/ja/helpers/matchTextWithWord.js +0 -53
  358. package/src/languageProcessing/languages/ja/helpers/matchTransitionWords.js +0 -25
  359. package/src/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js +0 -28
  360. package/src/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js +0 -20
  361. package/src/languageProcessing/languages/ja/helpers/wordsCharacterCount.js +0 -13
  362. package/src/languageProcessing/languages/nb/Researcher.js +0 -45
  363. package/src/languageProcessing/languages/nb/config/firstWordExceptions.js +0 -12
  364. package/src/languageProcessing/languages/nb/config/functionWords.js +0 -106
  365. package/src/languageProcessing/languages/nb/config/internal/participles.js +0 -3127
  366. package/src/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js +0 -15
  367. package/src/languageProcessing/languages/nb/config/stopWords.js +0 -39
  368. package/src/languageProcessing/languages/nb/config/transitionWords.js +0 -21
  369. package/src/languageProcessing/languages/nb/config/twoPartTransitionWords.js +0 -10
  370. package/src/languageProcessing/languages/nb/helpers/getClauses.js +0 -28
  371. package/src/languageProcessing/languages/nb/helpers/getStemmer.js +0 -22
  372. package/src/languageProcessing/languages/nb/helpers/internal/getParticiples.js +0 -24
  373. package/src/languageProcessing/languages/nb/helpers/internal/stem.js +0 -133
  374. package/src/languageProcessing/languages/nb/values/Clause.js +0 -43
  375. package/src/languageProcessing/languages/nl/Researcher.js +0 -48
  376. package/src/languageProcessing/languages/nl/config/firstWordExceptions.js +0 -15
  377. package/src/languageProcessing/languages/nl/config/functionWords.js +0 -233
  378. package/src/languageProcessing/languages/nl/config/internal/nonParticiples.js +0 -2515
  379. package/src/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js +0 -13
  380. package/src/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js +0 -474
  381. package/src/languageProcessing/languages/nl/config/keyphraseLength.js +0 -10
  382. package/src/languageProcessing/languages/nl/config/stopWords.js +0 -35
  383. package/src/languageProcessing/languages/nl/config/syllables.json +0 -343
  384. package/src/languageProcessing/languages/nl/config/transitionWords.js +0 -22
  385. package/src/languageProcessing/languages/nl/config/twoPartTransitionWords.js +0 -8
  386. package/src/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js +0 -15
  387. package/src/languageProcessing/languages/nl/helpers/getClauses.js +0 -25
  388. package/src/languageProcessing/languages/nl/helpers/getStemmer.js +0 -22
  389. package/src/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +0 -128
  390. package/src/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +0 -324
  391. package/src/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js +0 -164
  392. package/src/languageProcessing/languages/nl/helpers/internal/determineStem.js +0 -133
  393. package/src/languageProcessing/languages/nl/helpers/internal/getParticiples.js +0 -25
  394. package/src/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +0 -183
  395. package/src/languageProcessing/languages/nl/helpers/internal/stem.js +0 -146
  396. package/src/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +0 -109
  397. package/src/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +0 -65
  398. package/src/languageProcessing/languages/nl/values/Clause.js +0 -62
  399. package/src/languageProcessing/languages/pl/Researcher.js +0 -47
  400. package/src/languageProcessing/languages/pl/config/firstWordExceptions.js +0 -12
  401. package/src/languageProcessing/languages/pl/config/functionWords.js +0 -421
  402. package/src/languageProcessing/languages/pl/config/internal/auxiliaries.js +0 -85
  403. package/src/languageProcessing/languages/pl/config/internal/participles.js +0 -26433
  404. package/src/languageProcessing/languages/pl/config/sentenceLength.js +0 -10
  405. package/src/languageProcessing/languages/pl/config/stopWords.js +0 -36
  406. package/src/languageProcessing/languages/pl/config/transitionWords.js +0 -42
  407. package/src/languageProcessing/languages/pl/config/twoPartTransitionWords.js +0 -8
  408. package/src/languageProcessing/languages/pl/helpers/getClauses.js +0 -25
  409. package/src/languageProcessing/languages/pl/helpers/getStemmer.js +0 -22
  410. package/src/languageProcessing/languages/pl/helpers/internal/getParticiples.js +0 -18
  411. package/src/languageProcessing/languages/pl/helpers/internal/stem.js +0 -161
  412. package/src/languageProcessing/languages/pl/values/Clause.js +0 -53
  413. package/src/languageProcessing/languages/pt/Researcher.js +0 -48
  414. package/src/languageProcessing/languages/pt/config/firstWordExceptions.js +0 -15
  415. package/src/languageProcessing/languages/pt/config/functionWords.js +0 -226
  416. package/src/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js +0 -66
  417. package/src/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js +0 -4088
  418. package/src/languageProcessing/languages/pt/config/sentenceLength.js +0 -3
  419. package/src/languageProcessing/languages/pt/config/stopWords.js +0 -50
  420. package/src/languageProcessing/languages/pt/config/syllables.json +0 -38
  421. package/src/languageProcessing/languages/pt/config/transitionWords.js +0 -34
  422. package/src/languageProcessing/languages/pt/config/twoPartTransitionWords.js +0 -9
  423. package/src/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js +0 -15
  424. package/src/languageProcessing/languages/pt/helpers/getClauses.js +0 -29
  425. package/src/languageProcessing/languages/pt/helpers/getStemmer.js +0 -22
  426. package/src/languageProcessing/languages/pt/helpers/internal/getParticiples.js +0 -35
  427. package/src/languageProcessing/languages/pt/helpers/internal/stem.js +0 -319
  428. package/src/languageProcessing/languages/pt/values/Clause.js +0 -43
  429. package/src/languageProcessing/languages/ru/Researcher.js +0 -48
  430. package/src/languageProcessing/languages/ru/config/firstWordExceptions.js +0 -14
  431. package/src/languageProcessing/languages/ru/config/fleschReadingEaseScores.js +0 -20
  432. package/src/languageProcessing/languages/ru/config/functionWords.js +0 -519
  433. package/src/languageProcessing/languages/ru/config/internal/participlesShortenedList.js +0 -2914
  434. package/src/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js +0 -6295
  435. package/src/languageProcessing/languages/ru/config/sentenceLength.js +0 -3
  436. package/src/languageProcessing/languages/ru/config/syllables.json +0 -19
  437. package/src/languageProcessing/languages/ru/config/transitionWords.js +0 -62
  438. package/src/languageProcessing/languages/ru/config/twoPartTransitionWords.js +0 -14
  439. package/src/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js +0 -16
  440. package/src/languageProcessing/languages/ru/helpers/getStemmer.js +0 -22
  441. package/src/languageProcessing/languages/ru/helpers/internal/stem.js +0 -288
  442. package/src/languageProcessing/languages/ru/helpers/isPassiveSentence.js +0 -14
  443. package/src/languageProcessing/languages/sk/Researcher.js +0 -46
  444. package/src/languageProcessing/languages/sk/config/firstWordExceptions.js +0 -14
  445. package/src/languageProcessing/languages/sk/config/functionWords.js +0 -855
  446. package/src/languageProcessing/languages/sk/config/internal/nonPassives.js +0 -1074
  447. package/src/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js +0 -22
  448. package/src/languageProcessing/languages/sk/config/stopWords.js +0 -34
  449. package/src/languageProcessing/languages/sk/config/transitionWords.js +0 -23
  450. package/src/languageProcessing/languages/sk/config/twoPartTransitionWords.js +0 -10
  451. package/src/languageProcessing/languages/sk/helpers/getClauses.js +0 -26
  452. package/src/languageProcessing/languages/sk/helpers/getStemmer.js +0 -22
  453. package/src/languageProcessing/languages/sk/helpers/internal/getParticiples.js +0 -16
  454. package/src/languageProcessing/languages/sk/helpers/internal/stem.js +0 -319
  455. package/src/languageProcessing/languages/sk/values/Clause.js +0 -39
  456. package/src/languageProcessing/languages/sv/Researcher.js +0 -45
  457. package/src/languageProcessing/languages/sv/config/firstWordExceptions.js +0 -15
  458. package/src/languageProcessing/languages/sv/config/functionWords.js +0 -176
  459. package/src/languageProcessing/languages/sv/config/internal/passiveVerbs.js +0 -10400
  460. package/src/languageProcessing/languages/sv/config/keyphraseLength.js +0 -11
  461. package/src/languageProcessing/languages/sv/config/transitionWords.js +0 -35
  462. package/src/languageProcessing/languages/sv/config/twoPartTransitionWords.js +0 -8
  463. package/src/languageProcessing/languages/sv/helpers/getStemmer.js +0 -22
  464. package/src/languageProcessing/languages/sv/helpers/internal/stem.js +0 -152
  465. package/src/languageProcessing/languages/sv/helpers/isPassiveSentence.js +0 -14
  466. package/src/languageProcessing/languages/tr/Researcher.js +0 -44
  467. package/src/languageProcessing/languages/tr/config/firstWordExceptions.js +0 -13
  468. package/src/languageProcessing/languages/tr/config/functionWords.js +0 -116
  469. package/src/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js +0 -574
  470. package/src/languageProcessing/languages/tr/config/internal/passiveEndings.js +0 -151
  471. package/src/languageProcessing/languages/tr/config/sentenceLength.js +0 -7
  472. package/src/languageProcessing/languages/tr/config/transitionWords.js +0 -42
  473. package/src/languageProcessing/languages/tr/config/twoPartTransitionWords.js +0 -7
  474. package/src/languageProcessing/languages/tr/helpers/getStemmer.js +0 -22
  475. package/src/languageProcessing/languages/tr/helpers/internal/stem.js +0 -20
  476. package/src/languageProcessing/languages/tr/helpers/isPassiveSentence.js +0 -43
  477. package/src/languageProcessing/researches/altTagCount.js +0 -70
  478. package/src/languageProcessing/researches/countSentencesFromText.js +0 -19
  479. package/src/languageProcessing/researches/findKeyphraseInSEOTitle.js +0 -257
  480. package/src/languageProcessing/researches/findKeywordInFirstParagraph.js +0 -86
  481. package/src/languageProcessing/researches/findTransitionWords.js +0 -123
  482. package/src/languageProcessing/researches/functionWordsInKeyphrase.js +0 -44
  483. package/src/languageProcessing/researches/getAnchorsWithKeyphrase.js +0 -227
  484. package/src/languageProcessing/researches/getFleschReadingScore.js +0 -150
  485. package/src/languageProcessing/researches/getKeywordDensity.js +0 -44
  486. package/src/languageProcessing/researches/getLinkStatistics.js +0 -54
  487. package/src/languageProcessing/researches/getLinks.js +0 -18
  488. package/src/languageProcessing/researches/getLongCenterAlignedTexts.js +0 -37
  489. package/src/languageProcessing/researches/getParagraphLength.js +0 -44
  490. package/src/languageProcessing/researches/getParagraphs.js +0 -18
  491. package/src/languageProcessing/researches/getPassiveVoiceResult.js +0 -129
  492. package/src/languageProcessing/researches/getProminentWordsForInsights.js +0 -48
  493. package/src/languageProcessing/researches/getProminentWordsForInternalLinking.js +0 -119
  494. package/src/languageProcessing/researches/getSentenceBeginnings.js +0 -124
  495. package/src/languageProcessing/researches/getSubheadingTextLengths.js +0 -59
  496. package/src/languageProcessing/researches/getWordForms.js +0 -204
  497. package/src/languageProcessing/researches/h1s.js +0 -10
  498. package/src/languageProcessing/researches/imageCount.js +0 -16
  499. package/src/languageProcessing/researches/index.js +0 -5
  500. package/src/languageProcessing/researches/keyphraseDistribution.js +0 -249
  501. package/src/languageProcessing/researches/keyphraseLength.js +0 -17
  502. package/src/languageProcessing/researches/keywordCount.js +0 -134
  503. package/src/languageProcessing/researches/keywordCountInUrl.js +0 -57
  504. package/src/languageProcessing/researches/matchKeywordInSubheadings.js +0 -62
  505. package/src/languageProcessing/researches/metaDescriptionKeyword.js +0 -85
  506. package/src/languageProcessing/researches/metaDescriptionLength.js +0 -12
  507. package/src/languageProcessing/researches/pageTitleWidth.js +0 -11
  508. package/src/languageProcessing/researches/readingTime.js +0 -82
  509. package/src/languageProcessing/researches/sentences.js +0 -20
  510. package/src/languageProcessing/researches/videoCount.js +0 -32
  511. package/src/languageProcessing/researches/wordComplexity.js +0 -129
  512. package/src/languageProcessing/researches/wordCountInText.js +0 -29
  513. package/src/languageProcessing/values/Clause.js +0 -108
  514. package/src/languageProcessing/values/ProminentWord.js +0 -95
  515. package/src/languageProcessing/values/Sentence.js +0 -111
  516. package/src/languageProcessing/values/index.js +0 -9
  517. package/src/markers/addMark.js +0 -9
  518. package/src/markers/addMarkSingleWord.js +0 -32
  519. package/src/markers/index.js +0 -7
  520. package/src/markers/removeDuplicateMarks.js +0 -27
  521. package/src/markers/removeMarks.js +0 -11
  522. package/src/parse/build/build.js +0 -52
  523. package/src/parse/build/index.js +0 -10
  524. package/src/parse/build/private/adapt.js +0 -113
  525. package/src/parse/build/private/adaptAttributes.js +0 -36
  526. package/src/parse/build/private/alwaysFilterElements.js +0 -75
  527. package/src/parse/build/private/combineIntoImplicitParagraphs.js +0 -130
  528. package/src/parse/build/private/filterBeforeTokenizing.js +0 -32
  529. package/src/parse/build/private/filterHelpers.js +0 -44
  530. package/src/parse/build/private/filterTree.js +0 -42
  531. package/src/parse/build/private/getTextElementPositions.js +0 -184
  532. package/src/parse/build/private/helpers/parseClassAttribute.js +0 -9
  533. package/src/parse/build/private/isPhrasingContent.js +0 -28
  534. package/src/parse/build/private/parseBlocks.js +0 -151
  535. package/src/parse/build/private/tokenize.js +0 -74
  536. package/src/parse/language/LanguageProcessor.js +0 -74
  537. package/src/parse/structure/Heading.js +0 -26
  538. package/src/parse/structure/Node.js +0 -69
  539. package/src/parse/structure/Paragraph.js +0 -48
  540. package/src/parse/structure/Sentence.js +0 -30
  541. package/src/parse/structure/SourceCodeLocation.js +0 -41
  542. package/src/parse/structure/Text.js +0 -27
  543. package/src/parse/structure/Token.js +0 -24
  544. package/src/parse/structure/index.js +0 -16
  545. package/src/parse/traverse/findAllInTree.js +0 -58
  546. package/src/parse/traverse/index.js +0 -12
  547. package/src/parse/traverse/innerText.js +0 -26
  548. package/src/parsedPaper/ParsedPaper.js +0 -92
  549. package/src/parsedPaper/assess/TreeAssessor.js +0 -184
  550. package/src/parsedPaper/assess/assessmentListFactories.js +0 -73
  551. package/src/parsedPaper/assess/assessments/Assessment.js +0 -79
  552. package/src/parsedPaper/assess/assessments/index.js +0 -6
  553. package/src/parsedPaper/assess/assessorFactories.js +0 -104
  554. package/src/parsedPaper/assess/cornerstone/assessmentListFactories.js +0 -47
  555. package/src/parsedPaper/assess/cornerstone/index.js +0 -5
  556. package/src/parsedPaper/assess/index.js +0 -20
  557. package/src/parsedPaper/build/PaperParser.js +0 -105
  558. package/src/parsedPaper/build/linguisticParsing/Sentence.js +0 -89
  559. package/src/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +0 -323
  560. package/src/parsedPaper/build/linguisticParsing/parseText.js +0 -20
  561. package/src/parsedPaper/build/tree/TreeBuilder.js +0 -75
  562. package/src/parsedPaper/build/tree/cleanup/calculateTextIndices.js +0 -190
  563. package/src/parsedPaper/build/tree/cleanup/getElementContent.js +0 -21
  564. package/src/parsedPaper/build/tree/cleanup/postParsing.js +0 -37
  565. package/src/parsedPaper/build/tree/html/HTMLTreeConverter.js +0 -230
  566. package/src/parsedPaper/build/tree/html/buildTree.js +0 -31
  567. package/src/parsedPaper/build/tree/html/htmlConstants.js +0 -37
  568. package/src/parsedPaper/build/tree/index.js +0 -14
  569. package/src/parsedPaper/build/tree/metadata/buildTree.js +0 -32
  570. package/src/parsedPaper/research/TreeResearcher.js +0 -134
  571. package/src/parsedPaper/research/index.js +0 -13
  572. package/src/parsedPaper/research/researches/Headings.js +0 -20
  573. package/src/parsedPaper/research/researches/LinkStatistics.js +0 -128
  574. package/src/parsedPaper/research/researches/Research.js +0 -50
  575. package/src/parsedPaper/research/researches/index.js +0 -1
  576. package/src/parsedPaper/structure/tree/FormattingElement.js +0 -67
  577. package/src/parsedPaper/structure/tree/SourceCodeLocation.js +0 -31
  578. package/src/parsedPaper/structure/tree/TextContainer.js +0 -85
  579. package/src/parsedPaper/structure/tree/index.js +0 -22
  580. package/src/parsedPaper/structure/tree/nodes/Heading.js +0 -26
  581. package/src/parsedPaper/structure/tree/nodes/LeafNode.js +0 -75
  582. package/src/parsedPaper/structure/tree/nodes/List.js +0 -47
  583. package/src/parsedPaper/structure/tree/nodes/ListItem.js +0 -26
  584. package/src/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js +0 -46
  585. package/src/parsedPaper/structure/tree/nodes/MetadataText.js +0 -26
  586. package/src/parsedPaper/structure/tree/nodes/Node.js +0 -154
  587. package/src/parsedPaper/structure/tree/nodes/Paragraph.js +0 -24
  588. package/src/parsedPaper/structure/tree/nodes/StructuredNode.js +0 -52
  589. package/src/parsedPaper/structure/tree/nodes/index.js +0 -21
  590. package/src/scoring/assessments/assessment.js +0 -63
  591. package/src/scoring/assessments/index.js +0 -58
  592. package/src/scoring/assessments/readability/ParagraphTooLongAssessment.js +0 -173
  593. package/src/scoring/assessments/readability/SentenceBeginningsAssessment.js +0 -132
  594. package/src/scoring/assessments/readability/SentenceLengthInTextAssessment.js +0 -186
  595. package/src/scoring/assessments/readability/TransitionWordsAssessment.js +0 -168
  596. package/src/scoring/assessments/seo/ImageCountAssessment.js +0 -112
  597. package/src/scoring/assessments/seo/InternalLinksAssessment.js +0 -114
  598. package/src/scoring/assessments/seo/IntroductionKeywordAssessment.js +0 -110
  599. package/src/scoring/assessments/seo/KeyphraseAssessment.js +0 -104
  600. package/src/scoring/assessments/seo/KeyphraseLengthAssessment.js +0 -110
  601. package/src/scoring/assessments/seo/KeywordDensityAssessment.js +0 -116
  602. package/src/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +0 -114
  603. package/src/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +0 -112
  604. package/src/scoring/assessments/seo/MetaTitleKeywordAssessment.js +0 -111
  605. package/src/scoring/assessments/seo/NumberInMetaTitleAssessment.js +0 -107
  606. package/src/scoring/assessments/seo/OutboundLinksAssessment.js +0 -111
  607. package/src/scoring/assessments/seo/PageTitleWidthAssessment.js +0 -104
  608. package/src/scoring/assessments/seo/SingleH1Assessment.js +0 -118
  609. package/src/scoring/assessments/seo/SingleTitleAssessment.js +0 -108
  610. package/src/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +0 -107
  611. package/src/scoring/assessments/seo/TextImagesAssessment.js +0 -144
  612. package/src/scoring/assessments/seo/TextLengthAssessment.js +0 -100
  613. package/src/scoring/assessments/seo/UrlKeywordAssessment.js +0 -111
  614. package/src/scoring/assessments/seo/UrlLengthAssessment.js +0 -103
  615. package/src/scoring/assessors/assessor.js +0 -269
  616. package/src/scoring/assessors/avadaAssessor.js +0 -67
  617. package/src/scoring/assessors/contentAssessor.js +0 -159
  618. package/src/scoring/assessors/index.js +0 -4
  619. package/src/scoring/assessors/seoAssessor.js +0 -57
  620. package/src/scoring/helpers/assessments/checkForTooLongSentences.js +0 -13
  621. package/src/scoring/helpers/assessments/inRange.js +0 -49
  622. package/src/scoring/helpers/assessments/keyphraseLengthFactor.js +0 -10
  623. package/src/scoring/helpers/assessments/recommendedKeywordCount.js +0 -43
  624. package/src/scoring/helpers/index.js +0 -74
  625. package/src/scoring/interpreters/index.js +0 -5
  626. package/src/scoring/interpreters/scoreToRating.js +0 -31
  627. package/src/scoring/renderers/AssessorPresenter.js +0 -360
  628. package/src/scoring/scoreAggregators/ReadabilityScoreAggregator.js +0 -203
  629. package/src/scoring/scoreAggregators/SEOScoreAggregator.js +0 -54
  630. package/src/scoring/scoreAggregators/ScoreAggregator.js +0 -23
  631. package/src/scoring/scoreAggregators/index.js +0 -3
  632. package/src/values/AssessmentResult.js +0 -496
  633. package/src/values/Mark.js +0 -271
  634. package/src/values/Paper.js +0 -425
  635. package/src/values/index.js +0 -9
  636. package/src/vendor/turkishStemmer.js +0 -3435
  637. package/tsconfig.json +0 -15
@@ -1,793 +0,0 @@
1
- /* eslint-disable max-statements, complexity */
2
- // The original stemmer is available at https://github.com/dmarman/lorca/blob/master/src/stemmer.js.
3
- import {languageProcessing} from '../../../index';
4
- import checkVerbStemModifications from './checkVerbStemModifications';
5
-
6
- const {buildFormRule, createRulesFromArrays, findMatchingEndingInArray} = languageProcessing;
7
-
8
- /**
9
- * Copyright (C) 2018 Domingo Martín Mancera
10
- *
11
- * Permission is hereby granted, free of charge, to any person obtaining a copy
12
- * of this software and associated documentation files (the "Software"), to deal
13
- * in the Software without restriction, including without limitation the rights
14
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15
- * copies of the Software, and to permit persons to whom the Software is
16
- * furnished to do so, subject to the following conditions:
17
- *
18
- * The above copyright notice and this permission notice shall be included in
19
- * all copies or substantial portions of the Software.
20
- */
21
-
22
- /**
23
- * Checks if the input character is a Spanish vowel.
24
- *
25
- * @param {string} letter The character to be checked.
26
- *
27
- * @returns {boolean} Whether the input character is a Spanish vowel.
28
- */
29
- const isVowel = function(letter) {
30
- const regex = /[aeiouáéíóú]/gi;
31
-
32
- return regex.test(letter);
33
- };
34
-
35
- /**
36
- * Checks what the position number of the next vowel is. The function starts searching starting from a position specified
37
- * in the start parameter.
38
- *
39
- * @param {string} word The word to be analyzed.
40
- * @param {int} [start=0] The first position in the word to start checking from.
41
- *
42
- * @returns {int} The position at which the next vowel occurs.
43
- */
44
- const nextVowelPosition = function(word, start) {
45
- const length = word.length;
46
-
47
- for (let position = start; position < length; position++) {
48
- if (isVowel(word[position])) {
49
- return position;
50
- }
51
- }
52
-
53
- return length;
54
- };
55
-
56
- /**
57
- * Checks what the position number of the next consonant is. The function starts searching starting from a position specified
58
- * in the start parameter.
59
- *
60
- * @param {string} word The word to be analyzed.
61
- * @param {int} [start=0] The first position in the word to start checking from.
62
- *
63
- * @returns {int} The position at which the next consonant occurs.
64
- */
65
- const nextConsonantPosition = function(word, start) {
66
- const length = word.length;
67
-
68
- for (let position = start; position < length; position++) {
69
- if (!isVowel(word[position])) {
70
- return position;
71
- }
72
- }
73
-
74
- return length;
75
- };
76
-
77
- /**
78
- * Replaces accented vowels with non-accented vowels in the input string.
79
- *
80
- * @param {string} word The word to be de-accentified.
81
- *
82
- * @returns {string} The de-accentified input word.
83
- */
84
- const removeAccent = function(word) {
85
- const accentedVowels = ['á', 'é', 'í', 'ó', 'ú'];
86
- const vowels = ['a', 'e', 'i', 'o', 'u'];
87
-
88
- for (let i = 0; i < accentedVowels.length; i++) {
89
- word = word.replace(accentedVowels[i], vowels[i]);
90
- }
91
-
92
- return word;
93
- };
94
-
95
- /**
96
- * Checks whether the input word ends with the input suffix.
97
- *
98
- * @param {string} word The word to be analyzed.
99
- * @param {string} suffix The suffix to check for.
100
- *
101
- * @returns {boolean} Whether the word ends with the suffix provided.
102
- */
103
- const endsIn = function(word, suffix) {
104
- if (word.length < suffix.length) {
105
- return false;
106
- }
107
-
108
- return word.slice(-suffix.length) === suffix;
109
- };
110
-
111
- /**
112
- * Checks whether the input word ends with one of the input suffixes and returns the longest suffix matched.
113
- *
114
- * @param {string} word The word to be analyzed.
115
- * @param {string[]} suffixes The suffix to check for.
116
- *
117
- * @returns {string} The longest suffix matched in the word from the input list of suffixes.
118
- */
119
- const endsInArr = function(word, suffixes) {
120
- const matches = [];
121
- for (const i in suffixes) {
122
- if (endsIn(word, suffixes[i])) {
123
- matches.push(suffixes[i]);
124
- }
125
- }
126
- const longest = matches.sort(function(a, b) {
127
- return b.length - a.length;
128
- })[0];
129
- if (longest) {
130
- return longest;
131
- }
132
- return '';
133
- };
134
-
135
- /**
136
- * Checks whether a word is in the full-form exception list and if so returns the canonical stem.
137
- *
138
- * @param {string} word The word to be checked.
139
- * @param {Object} exceptions The list of full-form exceptions to be checked in.
140
- *
141
- * @returns {null|string} The canonical stem or null if nothing was found.
142
- */
143
- const checkWordInFullFormExceptions = function(word, exceptions) {
144
- for (const paradigm of exceptions) {
145
- if (paradigm[1].includes(word)) {
146
- return paradigm[0];
147
- }
148
- }
149
- return null;
150
- };
151
-
152
- /**
153
- * The function considers if the input word can be an adjective in -ano/anos/ana/anas and if so stems it.
154
- *
155
- * @param {string} word The word to stem.
156
- * @param {string} r1Text The R1 region of the word to stem.
157
- *
158
- * @returns {string} A stemmed adjective or the input word, if it is not an adjective on -ano/os/a/as.
159
- */
160
- const stemAdjectivesOnAn = function(word, r1Text) {
161
- const adjectiveSuffix = findMatchingEndingInArray(r1Text, ['ano', 'anos', 'ana', 'anas']);
162
-
163
- // Remove o/a/os/as
164
- if (adjectiveSuffix !== '') {
165
- if (word.endsWith('s')) {
166
- return word.slice(0, word.length - 2);
167
- }
168
- return word.slice(0, word.length - 1);
169
- }
170
- return word;
171
- };
172
-
173
- /**
174
- * The function considers if the input word can be an adverb in -mente and if so stems it.
175
- *
176
- * @param {string} word The word to stem.
177
- * @param {string} r1Text The R1 region of the word to stem.
178
- * @param {Object} menteStemming An object containing information about how to stem mente-adverbs.
179
- * @param {string[]} menteStemming.notMenteAdverbs An array of words that look like mente-adverbs but are not.
180
- * @param {Array} menteStemming.menteToStem An array of pairs of regexes to match.
181
- *
182
- * @returns {string} A stemmed adverb or the input word, if it is not an adverb.
183
- */
184
- const tryStemAsMente = function(word, r1Text, menteStemming) {
185
- const suffix = endsIn(r1Text, 'mente');
186
-
187
- // Immediately return the input word if no mente suffix is found or the word is in the stopList.
188
- if (!suffix || menteStemming.notMenteAdverbs.includes(word)) {
189
- return word;
190
- }
191
-
192
- return buildFormRule(word, createRulesFromArrays(menteStemming.menteToStem)) || word;
193
- };
194
-
195
- /**
196
- * The function considers if the input word can be a superlative and if so stems it.
197
- *
198
- * @param {string} word The word to stem.
199
- * @param {string} r1Text The R1 region of the word to stem.
200
- * @param {Object} superlativesStemming An object containing information about how to stem superlatives.
201
- * @param {string[]} superlativesStemming.superlativeSuffixes An array of suffixes possible in superlatives.
202
- * @param {string[]} superlativesStemming.notSuperlatives An array of words that look like superlatives but are not.
203
- * @param {Array} superlativesStemming.superlativeToStem An array of pairs of regexes to match.
204
- *
205
- * @returns {string} A stemmed superlative or the input word, if it is not a superlative.
206
- */
207
- const tryStemAsSuperlative = function(word, r1Text, superlativesStemming) {
208
- const superlativeSuffix = findMatchingEndingInArray(
209
- r1Text,
210
- superlativesStemming.superlativeSuffixes
211
- );
212
-
213
- // Immediately return the input word if no superlative suffix is found or the word is in the stopList.
214
- if (superlativeSuffix === '' || superlativesStemming.notSuperlatives.includes(word)) {
215
- return word;
216
- }
217
-
218
- return buildFormRule(word, createRulesFromArrays(superlativesStemming.superlativeToStem));
219
- };
220
-
221
- /**
222
- * The function considers if the input word can be a diminutive and if so stems it.
223
- * @param {string} word The word to stem.
224
- * @param {Object} diminutivesStemming An object containing information about how to stem diminutives.
225
- * @param {string[]} diminutivesStemming.notDiminutives An array of words that look like diminutives but are not.
226
- * @param {Array} diminutivesStemming.diminutiveToStem An array of pairs of regexes to match.
227
- * @param {Array} diminutivesStemming.irregularDiminutives An array containing data for irregular diminutives.
228
- *
229
- * @returns {string} A stemmed diminutive or the input word, if it is not a diminutive.
230
- */
231
- const tryStemAsDiminutive = function(word, diminutivesStemming) {
232
- const diminutiveSuffix = findMatchingEndingInArray(word, [
233
- 'ito',
234
- 'ita',
235
- 'itos',
236
- 'itas',
237
- 'íto',
238
- 'íta',
239
- 'ítos',
240
- 'ítas'
241
- ]);
242
-
243
- // Immediately return the input word if no diminutive suffix is found or the word is in the stopList.
244
- if (diminutiveSuffix === '' || diminutivesStemming.notDiminutives.includes(word)) {
245
- return word;
246
- }
247
-
248
- // Remove o/a/os/as and check irregular diminutives ending in -it-/-ít-
249
- const wordWithoutEnding = word.endsWith('s')
250
- ? word.slice(0, word.length - 2)
251
- : word.slice(0, word.length - 1);
252
-
253
- for (const paradigm of diminutivesStemming.irregularDiminutives) {
254
- if (paradigm[1].includes(wordWithoutEnding)) {
255
- return paradigm[0];
256
- }
257
- }
258
-
259
- return buildFormRule(word, createRulesFromArrays(diminutivesStemming.diminutiveToStem)) || word;
260
- };
261
-
262
- /**
263
- * Checks whether a stem is in an exception list of verbs, nouns or adjectives with multiple stems and if so returns
264
- * the canonical stem.
265
- *
266
- * @param {string} stemmedWord The stemmed word to be checked.
267
- * @param {Object} stemsThatBelongToOneWord The POS-specific data that shows how non-canonical stems should be canonicalized.
268
- *
269
- * @returns {null|string} The canonical stem or null if nothing was found.
270
- */
271
- const canonicalizeStem = function(stemmedWord, stemsThatBelongToOneWord) {
272
- // First check for nouns with multiple stems, which are only diminutives.
273
- for (const paradigm of stemsThatBelongToOneWord.nouns) {
274
- if (paradigm.includes(stemmedWord)) {
275
- return paradigm[0];
276
- }
277
- }
278
-
279
- // Second check for adjectives with multiple stems, which are only adjectives ending in -bl/-bil.
280
- for (const paradigm of stemsThatBelongToOneWord.adjectives) {
281
- if (paradigm.includes(stemmedWord)) {
282
- return paradigm[0];
283
- }
284
- }
285
-
286
- // Last check for verbs that have irregular forms.
287
- for (const paradigm of stemsThatBelongToOneWord.verbs) {
288
- if (paradigm.includes(stemmedWord)) {
289
- return paradigm[0];
290
- }
291
- }
292
- return null;
293
- };
294
-
295
- /**
296
- * Stems verb suffixes.
297
- *
298
- * @param {string} word The original word.
299
- * @param {string} wordAfter1 The word after step 1.
300
- * @param {string} rvText The text of the RV.
301
- * @param {number} rv The start position of the RV.
302
- *
303
- * @returns {string} The word with the verb suffixes removed (if applicable).
304
- */
305
- const stemVerbSuffixes = function(word, wordAfter1, rvText, rv) {
306
- // Do step 2a if no ending was removed by step 1.
307
- const suf = findMatchingEndingInArray(rvText, [
308
- 'ya',
309
- 'ye',
310
- 'yan',
311
- 'yen',
312
- 'yeron',
313
- 'yendo',
314
- 'yo',
315
- 'yó',
316
- 'yas',
317
- 'yes',
318
- 'yais',
319
- 'yamos'
320
- ]);
321
-
322
- if (suf !== '' && word.slice(-suf.length - 1, -suf.length) === 'u') {
323
- word = word.slice(0, -suf.length);
324
- }
325
-
326
- if (word !== wordAfter1) {
327
- rvText = word.slice(rv);
328
- }
329
-
330
- // Do Step 2b if step 2a was done, but failed to remove a suffix.
331
- if (word === wordAfter1) {
332
- const suf11 = findMatchingEndingInArray(rvText, [
333
- 'arían',
334
- 'arías',
335
- 'arán',
336
- 'arás',
337
- 'aríais',
338
- 'aría',
339
- 'aréis',
340
- 'aríamos',
341
- 'aremos',
342
- 'ará',
343
- 'aré',
344
- 'erían',
345
- 'erías',
346
- 'erán',
347
- 'erás',
348
- 'eríais',
349
- 'ería',
350
- 'eréis',
351
- 'eríamos',
352
- 'eremos',
353
- 'erá',
354
- 'eré',
355
- 'irían',
356
- 'irías',
357
- 'irán',
358
- 'irás',
359
- 'iríais',
360
- 'iría',
361
- 'iréis',
362
- 'iríamos',
363
- 'iremos',
364
- 'irá',
365
- 'iré',
366
- 'aba',
367
- 'ada',
368
- 'ida',
369
- 'ía',
370
- 'ara',
371
- 'iera',
372
- 'ad',
373
- 'ed',
374
- 'id',
375
- 'ase',
376
- 'iese',
377
- 'aste',
378
- 'iste',
379
- 'an',
380
- 'aban',
381
- 'ían',
382
- 'aran',
383
- 'ieran',
384
- 'asen',
385
- 'iesen',
386
- 'aron',
387
- 'ieron',
388
- 'ado',
389
- 'ido',
390
- 'ando',
391
- 'iendo',
392
- 'ió',
393
- 'ar',
394
- 'er',
395
- 'ir',
396
- 'as',
397
- 'abas',
398
- 'adas',
399
- 'idas',
400
- 'ías',
401
- 'aras',
402
- 'ieras',
403
- 'ases',
404
- 'ieses',
405
- 'ís',
406
- 'áis',
407
- 'abais',
408
- 'íais',
409
- 'arais',
410
- 'ierais',
411
- ' aseis',
412
- 'ieseis',
413
- 'asteis',
414
- 'isteis',
415
- 'ados',
416
- 'idos',
417
- 'amos',
418
- 'ábamos',
419
- 'íamos',
420
- 'imos',
421
- 'áramos',
422
- 'iéramos',
423
- 'iésemos',
424
- 'ásemos'
425
- ]);
426
- const suf12 = findMatchingEndingInArray(rvText, ['en', 'es', 'éis', 'emos']);
427
- if (suf11 !== '') {
428
- word = word.slice(0, -suf11.length);
429
- } else if (suf12 !== '') {
430
- word = word.slice(0, -suf12.length);
431
- if (endsIn(word, 'gu')) {
432
- word = word.slice(0, -1);
433
- }
434
- }
435
- }
436
-
437
- return word;
438
- };
439
-
440
- /**
441
- * Determines the R1, R2 and RV of the word.
442
- *
443
- * @param {string} word The word checked.
444
- *
445
- * @returns {number[]} The array of R1, R2, and RV.
446
- */
447
- const determineWordRegion = function(word) {
448
- let r1 = word.length;
449
- let r2 = word.length;
450
- let rv = word.length;
451
-
452
- /**
453
- * R1 is the region after the first non-vowel following a vowel, or is the null region at the end of the word if
454
- * there is no such non-vowel.
455
- */
456
- for (let i = 0; i < word.length - 1 && r1 === word.length; i++) {
457
- if (isVowel(word[i]) && !isVowel(word[i + 1])) {
458
- r1 = i + 2;
459
- }
460
- }
461
-
462
- /**
463
- * R2 is the region after the first non-vowel following a vowel in R1, or is the null region at the end of the
464
- * word if there is no such non-vowel.
465
- */
466
- for (let i = r1; i < word.length - 1 && r2 === word.length; i++) {
467
- if (isVowel(word[i]) && !isVowel(word[i + 1])) {
468
- r2 = i + 2;
469
- }
470
- }
471
-
472
- if (word.length > 3) {
473
- if (!isVowel(word[1])) {
474
- rv = nextVowelPosition(word, 2) + 1;
475
- } else if (isVowel(word[0]) && isVowel(word[1])) {
476
- rv = nextConsonantPosition(word, 2) + 1;
477
- } else {
478
- rv = 3;
479
- }
480
- }
481
- return [r1, r2, rv];
482
- };
483
-
484
- /**
485
- * Stems enclitic pronouns.
486
- *
487
- * @param {string} word The word checked.
488
- * @param {string} rvText The text of RV.
489
- * @param {Object} morphologyData The Spanish morphology data.
490
- *
491
- * @returns {string} The word without the enclitic pronoun (if applicable).
492
- */
493
- const stemEncliticPronouns = function(word, rvText, morphologyData) {
494
- const pronounSuffix = [
495
- 'me',
496
- 'se',
497
- 'sela',
498
- 'selo',
499
- 'selas',
500
- 'selos',
501
- 'la',
502
- 'le',
503
- 'lo',
504
- 'las',
505
- 'les',
506
- 'los',
507
- 'nos'
508
- ];
509
- const pronounSuffixPre1 = ['iéndo', 'ándo', 'ár', 'ér', 'ír'];
510
- const pronounSuffixPre2 = ['iendo', 'ando', 'ar', 'er', 'ir'];
511
-
512
- const suffix = findMatchingEndingInArray(word, pronounSuffix);
513
-
514
- if (
515
- suffix !== '' &&
516
- !morphologyData.wordsThatLookLikeButAreNot.notVerbsEndingInPersonalPronouns.includes(word)
517
- ) {
518
- let preSuffix = findMatchingEndingInArray(rvText.slice(0, -suffix.length), pronounSuffixPre1);
519
-
520
- if (preSuffix === '') {
521
- preSuffix = findMatchingEndingInArray(rvText.slice(0, -suffix.length), pronounSuffixPre2);
522
-
523
- if (preSuffix !== '' || endsIn(word.slice(0, -suffix.length), 'uyendo')) {
524
- word = word.slice(0, -suffix.length);
525
- }
526
- } else {
527
- word = removeAccent(word.slice(0, -suffix.length));
528
- }
529
- }
530
- return word;
531
- };
532
-
533
- /**
534
- * Stems derivational suffixes such as "anza", "anzas", "ico", "ica", "icos", "icas" etc. E.g. esperanza -> esper
535
- *
536
- * @param {string} word The word checked.
537
- * @param {string} r2Text The text of the R2.
538
- *
539
- * @returns {string} The word with removed derivational suffix.
540
- */
541
- const stemDerivationalForms = function(word, r2Text) {
542
- const suf1 = findMatchingEndingInArray(r2Text, [
543
- 'anza',
544
- 'anzas',
545
- 'ico',
546
- 'ica',
547
- 'icos',
548
- 'icas',
549
- 'ismo',
550
- 'ismos',
551
- 'able',
552
- 'ables',
553
- 'ible',
554
- 'ibles',
555
- 'ista',
556
- 'istas',
557
- 'oso',
558
- 'osa',
559
- 'osos',
560
- 'osas',
561
- 'amiento',
562
- 'amientos',
563
- 'imiento',
564
- 'imientos'
565
- ]);
566
- const suf2 = findMatchingEndingInArray(r2Text, [
567
- 'icadora',
568
- 'icador',
569
- 'icación',
570
- 'icadoras',
571
- 'icadores',
572
- 'icaciones',
573
- 'icante',
574
- 'icantes',
575
- 'icancia',
576
- 'icancias',
577
- 'adora',
578
- 'ador',
579
- 'ación',
580
- 'adoras',
581
- 'adores',
582
- 'aciones',
583
- 'ante',
584
- 'antes',
585
- 'ancia',
586
- 'ancias'
587
- ]);
588
- const suf3 = findMatchingEndingInArray(r2Text, ['logía', 'logías']);
589
- const suf4 = findMatchingEndingInArray(r2Text, ['ución', 'uciones']);
590
- const suf5 = findMatchingEndingInArray(r2Text, ['encia', 'encias']);
591
- const suf9 = findMatchingEndingInArray(r2Text, [
592
- 'abilidad',
593
- 'abilidades',
594
- 'icidad',
595
- 'icidades',
596
- 'ividad',
597
- 'ividades',
598
- 'idad',
599
- 'idades'
600
- ]);
601
- const suf10 = findMatchingEndingInArray(r2Text, [
602
- 'ativa',
603
- 'ativo',
604
- 'ativas',
605
- 'ativos',
606
- 'iva',
607
- 'ivo',
608
- 'ivas',
609
- 'ivos'
610
- ]);
611
-
612
- if (suf1 !== '') {
613
- word = word.slice(0, -suf1.length);
614
- } else if (suf2 !== '') {
615
- word = word.slice(0, -suf2.length);
616
- } else if (suf3 !== '') {
617
- word = word.slice(0, -suf3.length) + 'log';
618
- } else if (suf4 !== '') {
619
- word = word.slice(0, -suf4.length) + 'u';
620
- } else if (suf5 !== '') {
621
- word = word.slice(0, -suf5.length) + 'ente';
622
- } else if (suf9 !== '') {
623
- word = word.slice(0, -suf9.length);
624
- } else if (suf10 !== '') {
625
- word = word.slice(0, -suf10.length);
626
- }
627
- return word;
628
- };
629
-
630
- /**
631
- * Stems suffixes "os", "a", "o", "á", "í", "ó", "e", and "é" in RV. e.g. regla -> regl
632
- *
633
- * @param {string} word The word checked.
634
- * @param {string} rvText The text of RV.
635
- * @param {number} rv The start position of the RV.
636
- * @returns {string} The word with removed suffix.
637
- */
638
- const stemGenericSuffix = function(word, rvText, rv) {
639
- const suf13 = endsInArr(rvText, ['os', 'a', 'o', 'á', 'í', 'ó']);
640
- if (suf13 !== '') {
641
- word = word.slice(0, -suf13.length);
642
- } else if (endsInArr(rvText, ['e', 'é']) !== '') {
643
- word = word.slice(0, -1);
644
- rvText = word.slice(rv);
645
- if (endsIn(rvText, 'u') && endsIn(word, 'gu')) {
646
- word = word.slice(0, -1);
647
- }
648
- }
649
- return word;
650
- };
651
-
652
- /**
653
- * Stems Spanish words.
654
- *
655
- * @param {string} word The word to stem.
656
- * @param {Object} morphologyData The Spanish morphology data.
657
- *
658
- * @returns {string} The stemmed word.
659
- */
660
- export default function stem(word, morphologyData) {
661
- word.toLowerCase();
662
- const ifException = checkWordInFullFormExceptions(
663
- word,
664
- morphologyData.exceptionStemsWithFullForms
665
- );
666
- if (ifException) {
667
- return ifException;
668
- }
669
-
670
- const nonPluralsOnS = morphologyData.wordsThatLookLikeButAreNot.nonPluralsOnS;
671
- if (nonPluralsOnS.includes(word)) {
672
- return removeAccent(word);
673
- }
674
-
675
- const length = word.length;
676
- if (length < 2) {
677
- return removeAccent(word);
678
- }
679
-
680
- // Determine the r1, r2 and rv of the word
681
- const [r1, r2, rv] = determineWordRegion(word);
682
-
683
- let r1Text = word.slice(r1);
684
- let r2Text = word.slice(r2);
685
- let rvText = word.slice(rv);
686
- const originalWord = word;
687
-
688
- const wordAfterAdjectiveOnAnCheck = stemAdjectivesOnAn(word, r1Text);
689
- if (wordAfterAdjectiveOnAnCheck !== word) {
690
- return removeAccent(wordAfterAdjectiveOnAnCheck);
691
- }
692
-
693
- /*
694
- * Step 0:
695
- * Stem enclitic pronouns.
696
- */
697
- word = stemEncliticPronouns(word, rvText, morphologyData);
698
-
699
- if (word !== originalWord) {
700
- r1Text = word.slice(r1);
701
- r2Text = word.slice(r2);
702
- rvText = word.slice(rv);
703
- }
704
-
705
- // The word after removing enclitic pronouns.
706
- const wordAfter0 = word;
707
-
708
- /*
709
- * Step 1:
710
- * If the word ends in derivational suffixes such as "anza", "anzas", "ico", "ica", "icos", "icas" etc. the suffix will be stemmed here.
711
- */
712
- word = stemDerivationalForms(word, r2Text);
713
-
714
- // Check if the word is an adverb in -mente. Stem it as a adverb if so, and immediately return the result.
715
- const ifMente = tryStemAsMente(word, r1Text, morphologyData.menteStemming);
716
- if (ifMente !== word) {
717
- return removeAccent(ifMente);
718
- }
719
-
720
- // Check if the word is a superlative. Stem it as a superlative if so, and immediately return the result.
721
- const ifSuperlative = tryStemAsSuperlative(word, r1Text, morphologyData.superlativesStemming);
722
- if (ifSuperlative !== word) {
723
- return removeAccent(ifSuperlative);
724
- }
725
-
726
- // Check if the word is a diminutive. Stem it as a diminutive if so, and immediately return the result.
727
- const ifDiminutive = tryStemAsDiminutive(word, morphologyData.diminutivesStemming);
728
- if (ifDiminutive !== word) {
729
- return removeAccent(ifDiminutive);
730
- }
731
-
732
- // Adjust RV text if the word has been changed after derivational suffixes have been removed.
733
- if (word !== wordAfter0) {
734
- rvText = word.slice(rv);
735
- }
736
-
737
- // The word after removing derivational suffixes.
738
- const wordAfter1 = word;
739
- /*
740
- * Step 2a and 2b:
741
- * Stem verb suffixes.
742
- */
743
- let isNonVerb = false;
744
- const notVerbForms = morphologyData.wordsThatLookLikeButAreNot.notVerbForms;
745
-
746
- // Stem verbal suffixes if no derivational suffix was detected and removed.
747
- if (wordAfter0 === wordAfter1) {
748
- // If the word ends in -s, it is removed before checking the non-verbs list, as the list does not include plural forms.
749
- let wordWithoutS = word;
750
- if (word.endsWith('s')) {
751
- wordWithoutS = word.slice(0, -1);
752
- }
753
-
754
- if (notVerbForms.includes(wordWithoutS)) {
755
- /*
756
- * If the word without -s is matched on the non-verbs list, we can perform the next (non-verb) stemming steps
757
- * with the -s removed. This is because all possible non-verb suffixes ending in -s also have an equivalent
758
- * without the -s (e.g. -as/a; -es/e), so will be stemmed after stripping the -s.
759
- */
760
- word = wordWithoutS;
761
- isNonVerb = true;
762
- } else {
763
- word = stemVerbSuffixes(word, wordAfter1, rvText, rv);
764
- }
765
- }
766
-
767
- // Adjust RV text after derivational suffixes have been removed.
768
- rvText = word.slice(rv);
769
-
770
- /*
771
- * Step 4:
772
- * Stem generic suffixes;
773
- * If the word ends in "os", "a", "o", "á", "í", "ó", "e", "é", the suffix will be removed here.
774
- */
775
- word = stemGenericSuffix(word, rvText, rv);
776
-
777
- // Check if the stemmed word is on the list of words with multiple stems. If so, return the canonical stem.
778
- const canonicalStem = canonicalizeStem(word, morphologyData.stemsThatBelongToOneWord);
779
- if (canonicalStem) {
780
- return canonicalStem;
781
- }
782
-
783
- if (!isNonVerb) {
784
- const modifiedVerbStem = checkVerbStemModifications(word, morphologyData);
785
- if (modifiedVerbStem) {
786
- // If on the list of words that look like verbs [notVerbForms] do not perform stem modification.
787
- // Do not perform at the beginning of the word and if word does not have verb suffix.
788
- return modifiedVerbStem;
789
- }
790
- }
791
-
792
- return removeAccent(word);
793
- }