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 +1 @@
1
- {"version":3,"file":"detectAndStemRegularParticiple.js","names":["_index","require","_nonParticiples","_interopRequireDefault","_stemModificationHelpers","e","__esModule","default","regexHelpers","doesWordMatchRegex","languageProcessing","checkAndStemIfExceptionWithoutGePrefix","dataExceptionListToCheck","word","includes","slice","shouldSuffixBeStemmed","wordWithoutPrefix","morphologyDataNL","endsWith","exceptionsTShouldBeStemmed","ambiguousTAndDEndings","wordsTShouldBeStemmed","tOrDArePartOfStem","tEnding","exceptionsTShouldNotBeStemmed","stemExceptions","wordsNotToBeStemmedExceptions","verbs","exceptionsDShouldNotBeStemmed","pastParticipleStemmer","doNotStemD","detectAndStemParticiplesWithoutPrefixes","geStemTParticipleRegex","RegExp","participleStemmingClasses","regex","test","exception","doNotStemGe","startsWith","detectAndStemParticiplePerPrefixClass","separable","prefixes","regexPart","currentPrefix","participleRegex","length","detectAndStemParticiplesWithPrefixes","participleClass","compoundVerbsPrefixes","inseparable","stem","checkIfParticipleIsSameAsStem","dataParticiplesSameAsStem","checkAndStemIfInseparablePrefixWithEndEnding","inseparablePrefixes","finalChangesRules","startsWithInseparablePrefix","map","prefix","some","value","modifyStem","detectAndStemRegularParticiple","nonParticiples","inseparableCompoundVerbsNotToBeStemmed","inseparableCompoundVerbs","pastParticiplesEndingOnEnd","regularStemmer","stemModifications","finalChanges"],"sources":["../../../../../../src/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js"],"sourcesContent":["import {languageProcessing} from '../../../index';\nconst {\n regexHelpers: {doesWordMatchRegex}\n} = languageProcessing;\n\nimport nonParticiples from '../../config/internal/nonParticiples.js';\nimport {modifyStem} from './stemModificationHelpers';\n\n/**\n * Checks whether the word is on an exception list of participles that do not have a ge- prefix. If it is found on the list,\n * remove only the last letter (the suffix).\n *\n * @param {array} dataExceptionListToCheck The list of the exception words.\n * @param {string} word \tThe (unstemmed) word to check.\n *\n * @returns {null|string} The stemmed word or null if the word was not found on the exception list.\n */\nconst checkAndStemIfExceptionWithoutGePrefix = function(dataExceptionListToCheck, word) {\n if (dataExceptionListToCheck.includes(word)) {\n return word.slice(0, -1);\n }\n return null;\n};\n\n/**\n * Checks whether a word that was detected as a participle should not have the suffix (-t or -d) removed because it is part\n * of the stem. For example, in the participle 'geantwoord', the -d belongs to the stem so it should not be removed.\n * The checks are conducted on the word without the prefix, so 'antwoord' in the case of 'geantwoord'.\n *\n * For words ending in -t, there are three checks:\n * 1) An exception list (exceptions to a rule) containing words where -t SHOULD be stemmed,\n * 2) The rule, defined using a regex with word endings where -t is part of the stem,\n * 3) A list of verbs with stem ending in -t, to cover cases that were not possible to find using a regex.\n *\n * For words ending in -d, we check a list of verbs with stem ending in -d.\n *\n * @param {string}\twordWithoutPrefix\tThe word without prefix(es).\n * @param {Object}\tmorphologyDataNL\tThe Dutch morphology data.\n *\n * @returns {boolean}\t\t\t\t\tWhether the suffix should be stemmed.\n */\nconst shouldSuffixBeStemmed = function(wordWithoutPrefix, morphologyDataNL) {\n if (wordWithoutPrefix.endsWith('t')) {\n // Return true (suffix should be stemmed) if word was found on the exception list of verbs which should have the final -t stemmed.\n const exceptionsTShouldBeStemmed = morphologyDataNL.ambiguousTAndDEndings.wordsTShouldBeStemmed;\n if (exceptionsTShouldBeStemmed.includes(wordWithoutPrefix)) {\n return true;\n }\n // Return false (suffix should not be stemmed) if word matches the regex for stems ending in -t.\n if (\n doesWordMatchRegex(\n wordWithoutPrefix,\n morphologyDataNL.ambiguousTAndDEndings.tOrDArePartOfStem.tEnding\n )\n ) {\n return false;\n }\n /*\n * Return false (suffix should not be stemmed) if the word was found on the list of verbs with stem ending in -t (e.g. haast)\n * Otherwise, return true (if no checks are matched, the default condition is for -t to be stemmed).\n */\n const exceptionsTShouldNotBeStemmed =\n morphologyDataNL.stemExceptions.wordsNotToBeStemmedExceptions.verbs;\n return !exceptionsTShouldNotBeStemmed.includes(wordWithoutPrefix);\n }\n const exceptionsDShouldNotBeStemmed = morphologyDataNL.pastParticipleStemmer.doNotStemD;\n return !exceptionsDShouldNotBeStemmed.includes(wordWithoutPrefix);\n};\n\n/**\n * Detects whether a word is a participle of a regular verb without prefixes other than ge-. If it is, checks whether\n * the word is an exception that should not have the prefix or the suffix stemmed. Then stems the word accordingly\n * (remove prefix, suffix, or both).\n *\n * @param {Object} morphologyDataNL\tThe Dutch morphology data.\n * @param {string} word The word (not stemmed) to check.\n *\n * @returns {string|null} The stem or null if no participle was matched.\n */\nconst detectAndStemParticiplesWithoutPrefixes = function(morphologyDataNL, word) {\n const geStemTParticipleRegex = new RegExp(\n '^' + morphologyDataNL.pastParticipleStemmer.participleStemmingClasses[0].regex\n );\n\n // Check if it's a ge + stem + t/d participle.\n if (geStemTParticipleRegex.test(word)) {\n // Check if the ge- is actually part of the stem. If yes, stem only the suffix.\n const exception = checkAndStemIfExceptionWithoutGePrefix(\n morphologyDataNL.pastParticipleStemmer.doNotStemGe,\n word\n );\n if (exception) {\n return exception;\n }\n\n // Remove the prefix.\n let wordWithoutPrefix = word.slice(2);\n\n // Check if stem starts with ë. If yes, replace ë with e.\n if (wordWithoutPrefix.startsWith('ë')) {\n wordWithoutPrefix = 'e' + wordWithoutPrefix.slice(1);\n }\n // Check whether the suffix should be stemmed. If yes, remove it and return the stem.\n if (shouldSuffixBeStemmed(wordWithoutPrefix, morphologyDataNL)) {\n return wordWithoutPrefix.slice(0, -1);\n }\n\n return wordWithoutPrefix;\n }\n\n return null;\n};\n\n/**\n * Determines whether a given participle pattern combined with prefixes from a given class (separable or inseparable)\n * applies to a given word and if so, returns the stem.\n *\n * @param {Object} morphologyDataNL \tThe Dutch morphology data.\n * @param {string} word \t\tThe word (not stemmed) to check.\n * @param {boolean} separable \t\t\tWhether the prefix is separable or not.\n * @param {string[]} prefixes \t\tThe prefixes of a certain prefix class.\n * @param {string} regexPart \t\tThe regex part for a given class (completed to a full regex within the function).\n *\n * @returns {string|null} The stem or null if no prefixed participle was matched.\n */\nconst detectAndStemParticiplePerPrefixClass = function(\n morphologyDataNL,\n word,\n separable,\n prefixes,\n regexPart\n) {\n for (const currentPrefix of prefixes) {\n const participleRegex = new RegExp('^' + currentPrefix + regexPart);\n\n if (participleRegex.test(word)) {\n let wordWithoutPrefix = word.slice(currentPrefix.length - word.length);\n /*\n * After removing a separable prefix, check whether the ge- belongs to the stem (e.g. the -ge- in opgebruikt).\n * If it does, stem only the suffix.\n */\n if (separable) {\n const exception = checkAndStemIfExceptionWithoutGePrefix(\n morphologyDataNL.pastParticipleStemmer.doNotStemGe,\n wordWithoutPrefix\n );\n if (exception) {\n return currentPrefix + exception;\n }\n wordWithoutPrefix = wordWithoutPrefix.slice(2);\n }\n // Check whether stem starts with ë. If yes, replace ë with e.\n if (wordWithoutPrefix.startsWith('ë')) {\n wordWithoutPrefix = 'e' + wordWithoutPrefix.slice(1);\n }\n\n if (shouldSuffixBeStemmed(wordWithoutPrefix, morphologyDataNL)) {\n return currentPrefix + wordWithoutPrefix.slice(0, -1);\n }\n return currentPrefix + wordWithoutPrefix;\n }\n }\n\n return null;\n};\n\n/**\n * Detects whether a word is a regular participle of a compound verb. A compound verb has a prefix in addition to, or instead of, ge-.\n * For example, afgemaakt has the separable prefix af-, and beantwoord has the inseparable prefix be-. If a participle\n * of a compound verb is detected, it is stemmed by removing the ge- (in case of a verb with a separable prefix) and the suffix -t or -d.\n *\n * @param {Object} morphologyDataNL \tThe Dutch morphology data.\n * @param {string} word The word (not stemmed) to check.\n *\n * @returns {string|null} The stem or null if no participle with prefix was matched.\n */\nconst detectAndStemParticiplesWithPrefixes = function(morphologyDataNL, word) {\n /*\n * It's important to preserve order here, since the ge + stem ending in -t regex is more specific than\n * the stem + t regex, and therefore must be checked first.\n */\n for (const participleClass of morphologyDataNL.pastParticipleStemmer.participleStemmingClasses) {\n const regex = participleClass.regex;\n const separable = participleClass.separable;\n\n const prefixes = separable\n ? morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes.separable\n : morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes.inseparable;\n\n const stem = detectAndStemParticiplePerPrefixClass(\n morphologyDataNL,\n word,\n separable,\n prefixes,\n regex\n );\n\n if (stem) {\n return stem;\n }\n }\n\n return null;\n};\n\n/**\n * Checks whether the word is on the list of participles that do not need to be stemmed, because the participle form\n * is the same as the stem.\n *\n * @param {string[]} dataParticiplesSameAsStem\tThe list of exceptions whose stem is the same as the participle.\n * @param {string} \t word\t\t\t\t\t\tThe word to check.\n * @returns {boolean} Whether the word is found on the exception list.\n */\nconst checkIfParticipleIsSameAsStem = function(dataParticiplesSameAsStem, word) {\n return dataParticiplesSameAsStem.includes(word);\n};\n\n/**\n * Check whether the word is on an exception list of past participles with inseparable prefixes and ending in -end.\n * If not, stem the word that starts with an inseparable verb prefix and ends in -end as a present participle.\n *\n * @param {array} inseparablePrefixes The list of inseparable prefixes.\n * @param {array} dataExceptionListToCheck The list of the exception words.\n * @param {array} finalChangesRules The array of regex-based rules to be applied to the stem.\n * @param {string} word \t The (unstemmed) word to check.\n *\n * @returns {null|string} The stemmed word or null if the word was found on the exception list.\n */\nconst checkAndStemIfInseparablePrefixWithEndEnding = function(\n inseparablePrefixes,\n dataExceptionListToCheck,\n finalChangesRules,\n word\n) {\n const startsWithInseparablePrefix = inseparablePrefixes\n .map(prefix => word.startsWith(prefix))\n .some(value => value === true);\n\n if (\n startsWithInseparablePrefix &&\n word.endsWith('end') &&\n !dataExceptionListToCheck.includes(word)\n ) {\n return modifyStem(word.slice(0, -3), finalChangesRules);\n }\n return null;\n};\n\n/**\n * Detects whether a word is a regular participle and if so, returns the stem.\n *\n * @param {Object} morphologyDataNL \tThe Dutch morphology data.\n * @param {string} word The word (not stemmed) to check.\n *\n * @returns {string|null} The participle stem or null if no regular participle was matched.\n */\nexport function detectAndStemRegularParticiple(morphologyDataNL, word) {\n // Check whether the word is not a participle. If it is not, return empty string.\n if (\n word.endsWith('heid') ||\n word.endsWith('teit') ||\n word.endsWith('tijd') ||\n nonParticiples.includes(word)\n ) {\n return '';\n }\n\n /**\n * Check whether the word is on an exception list of verbs whose participle is the same as the stem. If the word is found\n * on the list, return the stem.\n */\n if (\n checkIfParticipleIsSameAsStem(\n morphologyDataNL.pastParticipleStemmer.inseparableCompoundVerbsNotToBeStemmed,\n word\n )\n ) {\n return word;\n }\n\n // Check and stem if the word is a participle without any separable or inseparable prefix\n let stem = detectAndStemParticiplesWithoutPrefixes(morphologyDataNL, word);\n\n if (stem) {\n return stem;\n }\n\n /**\n * Check whether the word is on an exception list of inseparable compound verbs with a prefix that is usually separable.\n * If it is, remove just the suffix and return the stem.\n */\n stem = checkAndStemIfExceptionWithoutGePrefix(\n morphologyDataNL.pastParticipleStemmer.inseparableCompoundVerbs,\n word\n );\n\n if (stem) {\n return stem;\n }\n\n /**\n * Check whether the word is on an exception list of past participles with inseparable prefixes and ending in -end.\n * If not, stem the word that starts with an inseparable verb prefix and ends in -end as a present participle.\n */\n stem = checkAndStemIfInseparablePrefixWithEndEnding(\n morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes.inseparable,\n morphologyDataNL.pastParticipleStemmer.pastParticiplesEndingOnEnd,\n morphologyDataNL.regularStemmer.stemModifications.finalChanges,\n word\n );\n\n if (stem) {\n return stem;\n }\n\n // Check and stem if the word is a participle with a separable or inseparable prefix\n stem = detectAndStemParticiplesWithPrefixes(morphologyDataNL, word);\n\n if (stem) {\n return stem;\n }\n\n return null;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"detectAndStemRegularParticiple.js","names":["languageProcessing","regexHelpers","doesWordMatchRegex","nonParticiples","modifyStem","checkAndStemIfExceptionWithoutGePrefix","dataExceptionListToCheck","word","includes","slice","shouldSuffixBeStemmed","wordWithoutPrefix","morphologyDataNL","endsWith","exceptionsTShouldBeStemmed","ambiguousTAndDEndings","wordsTShouldBeStemmed","tOrDArePartOfStem","tEnding","exceptionsTShouldNotBeStemmed","stemExceptions","wordsNotToBeStemmedExceptions","verbs","exceptionsDShouldNotBeStemmed","pastParticipleStemmer","doNotStemD","detectAndStemParticiplesWithoutPrefixes","geStemTParticipleRegex","RegExp","participleStemmingClasses","regex","test","exception","doNotStemGe","startsWith","detectAndStemParticiplePerPrefixClass","separable","prefixes","regexPart","currentPrefix","participleRegex","length","detectAndStemParticiplesWithPrefixes","participleClass","compoundVerbsPrefixes","inseparable","stem","checkIfParticipleIsSameAsStem","dataParticiplesSameAsStem","checkAndStemIfInseparablePrefixWithEndEnding","inseparablePrefixes","finalChangesRules","startsWithInseparablePrefix","map","prefix","some","value","detectAndStemRegularParticiple","inseparableCompoundVerbsNotToBeStemmed","inseparableCompoundVerbs","pastParticiplesEndingOnEnd","regularStemmer","stemModifications","finalChanges"],"sources":["../../../../../../src/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js"],"sourcesContent":["import {languageProcessing} from '@axyseo/index.js';\nconst {\n regexHelpers: {doesWordMatchRegex}\n} = languageProcessing;\n\nimport nonParticiples from '../../config/internal/nonParticiples.js';\nimport {modifyStem} from './stemModificationHelpers';\n\n/**\n * Checks whether the word is on an exception list of participles that do not have a ge- prefix. If it is found on the list,\n * remove only the last letter (the suffix).\n *\n * @param {array} dataExceptionListToCheck The list of the exception words.\n * @param {string} word \tThe (unstemmed) word to check.\n *\n * @returns {null|string} The stemmed word or null if the word was not found on the exception list.\n */\nconst checkAndStemIfExceptionWithoutGePrefix = function(dataExceptionListToCheck, word) {\n if (dataExceptionListToCheck.includes(word)) {\n return word.slice(0, -1);\n }\n return null;\n};\n\n/**\n * Checks whether a word that was detected as a participle should not have the suffix (-t or -d) removed because it is part\n * of the stem. For example, in the participle 'geantwoord', the -d belongs to the stem so it should not be removed.\n * The checks are conducted on the word without the prefix, so 'antwoord' in the case of 'geantwoord'.\n *\n * For words ending in -t, there are three checks:\n * 1) An exception list (exceptions to a rule) containing words where -t SHOULD be stemmed,\n * 2) The rule, defined using a regex with word endings where -t is part of the stem,\n * 3) A list of verbs with stem ending in -t, to cover cases that were not possible to find using a regex.\n *\n * For words ending in -d, we check a list of verbs with stem ending in -d.\n *\n * @param {string}\twordWithoutPrefix\tThe word without prefix(es).\n * @param {Object}\tmorphologyDataNL\tThe Dutch morphology data.\n *\n * @returns {boolean}\t\t\t\t\tWhether the suffix should be stemmed.\n */\nconst shouldSuffixBeStemmed = function(wordWithoutPrefix, morphologyDataNL) {\n if (wordWithoutPrefix.endsWith('t')) {\n // Return true (suffix should be stemmed) if word was found on the exception list of verbs which should have the final -t stemmed.\n const exceptionsTShouldBeStemmed = morphologyDataNL.ambiguousTAndDEndings.wordsTShouldBeStemmed;\n if (exceptionsTShouldBeStemmed.includes(wordWithoutPrefix)) {\n return true;\n }\n // Return false (suffix should not be stemmed) if word matches the regex for stems ending in -t.\n if (\n doesWordMatchRegex(\n wordWithoutPrefix,\n morphologyDataNL.ambiguousTAndDEndings.tOrDArePartOfStem.tEnding\n )\n ) {\n return false;\n }\n /*\n * Return false (suffix should not be stemmed) if the word was found on the list of verbs with stem ending in -t (e.g. haast)\n * Otherwise, return true (if no checks are matched, the default condition is for -t to be stemmed).\n */\n const exceptionsTShouldNotBeStemmed =\n morphologyDataNL.stemExceptions.wordsNotToBeStemmedExceptions.verbs;\n return !exceptionsTShouldNotBeStemmed.includes(wordWithoutPrefix);\n }\n const exceptionsDShouldNotBeStemmed = morphologyDataNL.pastParticipleStemmer.doNotStemD;\n return !exceptionsDShouldNotBeStemmed.includes(wordWithoutPrefix);\n};\n\n/**\n * Detects whether a word is a participle of a regular verb without prefixes other than ge-. If it is, checks whether\n * the word is an exception that should not have the prefix or the suffix stemmed. Then stems the word accordingly\n * (remove prefix, suffix, or both).\n *\n * @param {Object} morphologyDataNL\tThe Dutch morphology data.\n * @param {string} word The word (not stemmed) to check.\n *\n * @returns {string|null} The stem or null if no participle was matched.\n */\nconst detectAndStemParticiplesWithoutPrefixes = function(morphologyDataNL, word) {\n const geStemTParticipleRegex = new RegExp(\n '^' + morphologyDataNL.pastParticipleStemmer.participleStemmingClasses[0].regex\n );\n\n // Check if it's a ge + stem + t/d participle.\n if (geStemTParticipleRegex.test(word)) {\n // Check if the ge- is actually part of the stem. If yes, stem only the suffix.\n const exception = checkAndStemIfExceptionWithoutGePrefix(\n morphologyDataNL.pastParticipleStemmer.doNotStemGe,\n word\n );\n if (exception) {\n return exception;\n }\n\n // Remove the prefix.\n let wordWithoutPrefix = word.slice(2);\n\n // Check if stem starts with ë. If yes, replace ë with e.\n if (wordWithoutPrefix.startsWith('ë')) {\n wordWithoutPrefix = 'e' + wordWithoutPrefix.slice(1);\n }\n // Check whether the suffix should be stemmed. If yes, remove it and return the stem.\n if (shouldSuffixBeStemmed(wordWithoutPrefix, morphologyDataNL)) {\n return wordWithoutPrefix.slice(0, -1);\n }\n\n return wordWithoutPrefix;\n }\n\n return null;\n};\n\n/**\n * Determines whether a given participle pattern combined with prefixes from a given class (separable or inseparable)\n * applies to a given word and if so, returns the stem.\n *\n * @param {Object} morphologyDataNL \tThe Dutch morphology data.\n * @param {string} word \t\tThe word (not stemmed) to check.\n * @param {boolean} separable \t\t\tWhether the prefix is separable or not.\n * @param {string[]} prefixes \t\tThe prefixes of a certain prefix class.\n * @param {string} regexPart \t\tThe regex part for a given class (completed to a full regex within the function).\n *\n * @returns {string|null} The stem or null if no prefixed participle was matched.\n */\nconst detectAndStemParticiplePerPrefixClass = function(\n morphologyDataNL,\n word,\n separable,\n prefixes,\n regexPart\n) {\n for (const currentPrefix of prefixes) {\n const participleRegex = new RegExp('^' + currentPrefix + regexPart);\n\n if (participleRegex.test(word)) {\n let wordWithoutPrefix = word.slice(currentPrefix.length - word.length);\n /*\n * After removing a separable prefix, check whether the ge- belongs to the stem (e.g. the -ge- in opgebruikt).\n * If it does, stem only the suffix.\n */\n if (separable) {\n const exception = checkAndStemIfExceptionWithoutGePrefix(\n morphologyDataNL.pastParticipleStemmer.doNotStemGe,\n wordWithoutPrefix\n );\n if (exception) {\n return currentPrefix + exception;\n }\n wordWithoutPrefix = wordWithoutPrefix.slice(2);\n }\n // Check whether stem starts with ë. If yes, replace ë with e.\n if (wordWithoutPrefix.startsWith('ë')) {\n wordWithoutPrefix = 'e' + wordWithoutPrefix.slice(1);\n }\n\n if (shouldSuffixBeStemmed(wordWithoutPrefix, morphologyDataNL)) {\n return currentPrefix + wordWithoutPrefix.slice(0, -1);\n }\n return currentPrefix + wordWithoutPrefix;\n }\n }\n\n return null;\n};\n\n/**\n * Detects whether a word is a regular participle of a compound verb. A compound verb has a prefix in addition to, or instead of, ge-.\n * For example, afgemaakt has the separable prefix af-, and beantwoord has the inseparable prefix be-. If a participle\n * of a compound verb is detected, it is stemmed by removing the ge- (in case of a verb with a separable prefix) and the suffix -t or -d.\n *\n * @param {Object} morphologyDataNL \tThe Dutch morphology data.\n * @param {string} word The word (not stemmed) to check.\n *\n * @returns {string|null} The stem or null if no participle with prefix was matched.\n */\nconst detectAndStemParticiplesWithPrefixes = function(morphologyDataNL, word) {\n /*\n * It's important to preserve order here, since the ge + stem ending in -t regex is more specific than\n * the stem + t regex, and therefore must be checked first.\n */\n for (const participleClass of morphologyDataNL.pastParticipleStemmer.participleStemmingClasses) {\n const regex = participleClass.regex;\n const separable = participleClass.separable;\n\n const prefixes = separable\n ? morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes.separable\n : morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes.inseparable;\n\n const stem = detectAndStemParticiplePerPrefixClass(\n morphologyDataNL,\n word,\n separable,\n prefixes,\n regex\n );\n\n if (stem) {\n return stem;\n }\n }\n\n return null;\n};\n\n/**\n * Checks whether the word is on the list of participles that do not need to be stemmed, because the participle form\n * is the same as the stem.\n *\n * @param {string[]} dataParticiplesSameAsStem\tThe list of exceptions whose stem is the same as the participle.\n * @param {string} \t word\t\t\t\t\t\tThe word to check.\n * @returns {boolean} Whether the word is found on the exception list.\n */\nconst checkIfParticipleIsSameAsStem = function(dataParticiplesSameAsStem, word) {\n return dataParticiplesSameAsStem.includes(word);\n};\n\n/**\n * Check whether the word is on an exception list of past participles with inseparable prefixes and ending in -end.\n * If not, stem the word that starts with an inseparable verb prefix and ends in -end as a present participle.\n *\n * @param {array} inseparablePrefixes The list of inseparable prefixes.\n * @param {array} dataExceptionListToCheck The list of the exception words.\n * @param {array} finalChangesRules The array of regex-based rules to be applied to the stem.\n * @param {string} word \t The (unstemmed) word to check.\n *\n * @returns {null|string} The stemmed word or null if the word was found on the exception list.\n */\nconst checkAndStemIfInseparablePrefixWithEndEnding = function(\n inseparablePrefixes,\n dataExceptionListToCheck,\n finalChangesRules,\n word\n) {\n const startsWithInseparablePrefix = inseparablePrefixes\n .map(prefix => word.startsWith(prefix))\n .some(value => value === true);\n\n if (\n startsWithInseparablePrefix &&\n word.endsWith('end') &&\n !dataExceptionListToCheck.includes(word)\n ) {\n return modifyStem(word.slice(0, -3), finalChangesRules);\n }\n return null;\n};\n\n/**\n * Detects whether a word is a regular participle and if so, returns the stem.\n *\n * @param {Object} morphologyDataNL \tThe Dutch morphology data.\n * @param {string} word The word (not stemmed) to check.\n *\n * @returns {string|null} The participle stem or null if no regular participle was matched.\n */\nexport function detectAndStemRegularParticiple(morphologyDataNL, word) {\n // Check whether the word is not a participle. If it is not, return empty string.\n if (\n word.endsWith('heid') ||\n word.endsWith('teit') ||\n word.endsWith('tijd') ||\n nonParticiples.includes(word)\n ) {\n return '';\n }\n\n /**\n * Check whether the word is on an exception list of verbs whose participle is the same as the stem. If the word is found\n * on the list, return the stem.\n */\n if (\n checkIfParticipleIsSameAsStem(\n morphologyDataNL.pastParticipleStemmer.inseparableCompoundVerbsNotToBeStemmed,\n word\n )\n ) {\n return word;\n }\n\n // Check and stem if the word is a participle without any separable or inseparable prefix\n let stem = detectAndStemParticiplesWithoutPrefixes(morphologyDataNL, word);\n\n if (stem) {\n return stem;\n }\n\n /**\n * Check whether the word is on an exception list of inseparable compound verbs with a prefix that is usually separable.\n * If it is, remove just the suffix and return the stem.\n */\n stem = checkAndStemIfExceptionWithoutGePrefix(\n morphologyDataNL.pastParticipleStemmer.inseparableCompoundVerbs,\n word\n );\n\n if (stem) {\n return stem;\n }\n\n /**\n * Check whether the word is on an exception list of past participles with inseparable prefixes and ending in -end.\n * If not, stem the word that starts with an inseparable verb prefix and ends in -end as a present participle.\n */\n stem = checkAndStemIfInseparablePrefixWithEndEnding(\n morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes.inseparable,\n morphologyDataNL.pastParticipleStemmer.pastParticiplesEndingOnEnd,\n morphologyDataNL.regularStemmer.stemModifications.finalChanges,\n word\n );\n\n if (stem) {\n return stem;\n }\n\n // Check and stem if the word is a participle with a separable or inseparable prefix\n stem = detectAndStemParticiplesWithPrefixes(morphologyDataNL, word);\n\n if (stem) {\n return stem;\n }\n\n return null;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,3 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = detectAndStemSuffixes;
7
- var _stemModificationHelpers = require("./stemModificationHelpers");
8
1
  /**
9
2
  * @file Dutch stemming algorithm. Adapted from:
10
3
  * @author:
@@ -16,6 +9,8 @@ var _stemModificationHelpers = require("./stemModificationHelpers");
16
9
  * Redistribution and use in source and binary forms, with or without modification, is covered by the standard BSD license.
17
10
  */
18
11
 
12
+ import { isVowelDoublingAllowed, modifyStem } from "./stemModificationHelpers";
13
+
19
14
  /**
20
15
  * Determines the start index of the R1 region.
21
16
  * R1 is the region after the first non-vowel following a vowel. It should include at least 3 letters.
@@ -78,15 +73,15 @@ const findSuffix = function (word, suffixStep, r1Index) {
78
73
  */
79
74
  const deleteSuffixAndModifyStem = function (word, suffixStep, suffixIndex, stemModification, morphologyDataNL) {
80
75
  if (stemModification === "hedenToHeid") {
81
- return (0, _stemModificationHelpers.modifyStem)(word, morphologyDataNL.regularStemmer.stemModifications.hedenToHeid);
76
+ return modifyStem(word, morphologyDataNL.regularStemmer.stemModifications.hedenToHeid);
82
77
  }
83
78
  word = word.substring(0, suffixIndex);
84
79
  if (stemModification === "changeIedtoId") {
85
- return (0, _stemModificationHelpers.modifyStem)(word, morphologyDataNL.regularStemmer.stemModifications.iedToId);
80
+ return modifyStem(word, morphologyDataNL.regularStemmer.stemModifications.iedToId);
86
81
  } else if (stemModification === "changeInktoIng" && word.endsWith("ink")) {
87
- return (0, _stemModificationHelpers.modifyStem)(word, morphologyDataNL.regularStemmer.stemModifications.inkToIng);
88
- } else if (stemModification === "vowelDoubling" && (0, _stemModificationHelpers.isVowelDoublingAllowed)(word, morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications, morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes)) {
89
- return (0, _stemModificationHelpers.modifyStem)(word, morphologyDataNL.regularStemmer.stemModifications.doubleVowel);
82
+ return modifyStem(word, morphologyDataNL.regularStemmer.stemModifications.inkToIng);
83
+ } else if (stemModification === "vowelDoubling" && isVowelDoublingAllowed(word, morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications, morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes)) {
84
+ return modifyStem(word, morphologyDataNL.regularStemmer.stemModifications.doubleVowel);
90
85
  }
91
86
  return word;
92
87
  };
@@ -135,12 +130,12 @@ const findAndDeleteSuffixes = function (word, suffixSteps, r1Index, morphologyDa
135
130
  *
136
131
  * @returns {string} The stemmed word.
137
132
  */
138
- function detectAndStemSuffixes(word, morphologyDataNL) {
133
+ export default function detectAndStemSuffixes(word, morphologyDataNL) {
139
134
  /*
140
135
  * Put i and y in between vowels, initial y, and y after a vowel into upper case. This is because they should
141
136
  * be treated as consonants so we want to differentiate them from other i's and y's when matching regexes.
142
137
  */
143
- word = (0, _stemModificationHelpers.modifyStem)(word, morphologyDataNL.regularStemmer.stemModifications.IAndYToUppercase);
138
+ word = modifyStem(word, morphologyDataNL.regularStemmer.stemModifications.IAndYToUppercase);
144
139
 
145
140
  // Find the start index of the R1 region.
146
141
  const r1Index = determineR1(word);
@@ -152,6 +147,6 @@ function detectAndStemSuffixes(word, morphologyDataNL) {
152
147
  word = findAndDeleteSuffixes(word, suffixSteps, r1Index, morphologyDataNL);
153
148
 
154
149
  // Do final modifications to the stem.
155
- return (0, _stemModificationHelpers.modifyStem)(word, morphologyDataNL.regularStemmer.stemModifications.finalChanges);
150
+ return modifyStem(word, morphologyDataNL.regularStemmer.stemModifications.finalChanges);
156
151
  }
157
152
  //# sourceMappingURL=detectAndStemSuffixes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detectAndStemSuffixes.js","names":["_stemModificationHelpers","require","determineR1","word","r1Index","search","findSuffix","suffixStep","suffixStepArray","Object","entries","suffixClass","suffixes","matchedRegex","find","suffixRegex","RegExp","exec","matched","suffix","length","suffixIndex","lastIndexOf","stemModification","deleteSuffixAndModifyStem","morphologyDataNL","modifyStem","regularStemmer","stemModifications","hedenToHeid","substring","iedToId","endsWith","inkToIng","isVowelDoublingAllowed","exceptionsStemModifications","pastParticipleStemmer","compoundVerbsPrefixes","doubleVowel","findAndDeleteSuffix","foundSuffix","findAndDeleteSuffixes","suffixSteps","suffixStepsArray","detectAndStemSuffixes","IAndYToUppercase","finalChanges"],"sources":["../../../../../../src/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js"],"sourcesContent":["/**\n * @file Dutch stemming algorithm. Adapted from:\n * @author:\n * @copyright\n * All rights reserved.\n * Implementation of the stemming algorithm from http://snowball.tartarus.org/algorithms/dutch/stemmer.html\n * Copyright of the algorithm is: Copyright (c) 2001, Dr Martin Porter and can be found at http://snowball.tartarus.org/license.php\n *\n * Redistribution and use in source and binary forms, with or without modification, is covered by the standard BSD license.\n */\n\nimport { isVowelDoublingAllowed, modifyStem } from \"./stemModificationHelpers\";\n\n/**\n * Determines the start index of the R1 region.\n * R1 is the region after the first non-vowel following a vowel. It should include at least 3 letters.\n *\n * @param {string} word The word for which to determine the R1 region.\n * @returns {number} The start index of the R1 region.\n */\nconst determineR1 = function( word ) {\n\t// Start with matching the first cluster that consists of a vowel and a non-vowel.\n\tlet r1Index = word.search( /[aeiouyèäüëïöáéíóú][^aeiouyèäüëïöáéíóú]/ );\n\t// Then add 2 since the R1 index is the index after the first vowel & non-vowel matched with the regex.\n\tif ( r1Index !== -1 ) {\n\t\tr1Index += 2;\n\t}\n\n\t// Adjust R1 so that the region preceding it includes at least 3 letters.\n\tif ( r1Index !== -1 && r1Index < 3 ) {\n\t\tr1Index = 3;\n\t}\n\n\treturn r1Index;\n};\n\n/**\n * Searches for suffixes in a word.\n *\n * @param {string} word \t\tThe word in which to look for suffixes.\n * @param {Object} suffixStep\tOne of the three steps of findings suffixes.\n * @param {number} r1Index\t\tThe index of the R1 region.\n *\n * @returns {Object} The index of the suffix and extra information about whether, and how, the stem will need to be modified.\n */\nconst findSuffix = function( word, suffixStep, r1Index ) {\n\tconst suffixStepArray = Object.entries( suffixStep );\n\tfor ( const suffixClass of suffixStepArray ) {\n\t\tconst suffixes = suffixClass[ 1 ].suffixes;\n\n\t\tconst matchedRegex = suffixes.find( suffixRegex => new RegExp( suffixRegex ).exec( word ) );\n\n\t\tif ( matchedRegex ) {\n\t\t\tconst matched = new RegExp( matchedRegex ).exec( word );\n\t\t\tconst suffix = matched[ matched.length - 1 ];\n\t\t\tconst suffixIndex = word.lastIndexOf( suffix );\n\n\t\t\tif ( r1Index !== -1 && suffixIndex >= r1Index ) {\n\t\t\t\treturn {\n\t\t\t\t\tsuffixIndex: suffixIndex,\n\t\t\t\t\tstemModification: suffixClass[ 1 ].stemModification,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * Deletes the suffix and modifies the stem according to the required modifications.\n *\n * @param {string} word\t The word from which to delete the suffix.\n * @param {Object} suffixStep \tOne of the three steps of deleting a suffix.\n * @param {number} suffixIndex\t The index of the found suffix.\n * @param {string} stemModification \tThe type of stem modification that needs to be done.\n * @param {Object} morphologyDataNL\t The Dutch morphology data file.\n * @returns {string} The stemmed and modified word.\n */\nconst deleteSuffixAndModifyStem = function( word, suffixStep, suffixIndex, stemModification, morphologyDataNL ) {\n\tif ( stemModification === \"hedenToHeid\" ) {\n\t\treturn modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.hedenToHeid );\n\t}\n\tword = word.substring( 0, suffixIndex );\n\tif ( stemModification === \"changeIedtoId\" ) {\n\t\treturn modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.iedToId );\n\t} else if ( stemModification === \"changeInktoIng\" && word.endsWith( \"ink\" ) ) {\n\t\treturn modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.inkToIng );\n\t} else if (\n\t\tstemModification === \"vowelDoubling\" &&\n\t\tisVowelDoublingAllowed(\n\t\t\tword,\n\t\t\tmorphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications,\n\t\t\tmorphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes\n\t\t)\n\t) {\n\t\treturn modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.doubleVowel );\n\t}\n\treturn word;\n};\n\n/**\n * Finds and deletes the suffix found in a particular step, and modifies the stem.\n *\n * @param {string} word \tThe word for which to find and delete a suffix.\n * @param {Object} suffixStep\t One of the three suffix steps.\n * @param {number} r1Index\t The index of the R1 region.\n * @param {Object} morphologyDataNL\t The Dutch morphology data file.\n * @returns {string} The word with the deleted suffix.\n */\nconst findAndDeleteSuffix = function( word, suffixStep, r1Index, morphologyDataNL ) {\n\tconst foundSuffix = findSuffix( word, suffixStep, r1Index );\n\tif ( typeof foundSuffix !== \"undefined\" ) {\n\t\tword = deleteSuffixAndModifyStem( word, suffixStep, foundSuffix.suffixIndex, foundSuffix.stemModification, morphologyDataNL );\n\t}\n\n\treturn word;\n};\n\n/**\n * Runs through three stemming steps that process different kinds of suffixes, determines if there is a valid suffix\n * within the R1 region that can be deleted for stemming and deletes it, as well as applies suffix-specific stem\n * modifications if needed.\n *\n * @param {string} word \tThe word for which to find and delete suffixes.\n * @param {Object} suffixSteps\t All of the suffix steps.\n * @param {number} r1Index\t The index of the R1 region\n * @param {Object} morphologyDataNL \tThe Dutch morphology data file.\n * @returns {string} The word with the delete suffix.\n */\nconst findAndDeleteSuffixes = function( word, suffixSteps, r1Index, morphologyDataNL ) {\n\tconst suffixStepsArray = Object.entries( suffixSteps );\n\tfor ( const suffixStep of suffixStepsArray ) {\n\t\tword = findAndDeleteSuffix( word, suffixStep[ 1 ], r1Index, morphologyDataNL );\n\t}\n\n\treturn word;\n};\n\n/**\n * Search for suffixes in a word, remove them if found, and modify the stem if needed.\n *\n * @param {string} word The word to stem.\n * @param {Object} morphologyDataNL The Dutch morphology data file.\n *\n * @returns {string} The stemmed word.\n */\nexport default function detectAndStemSuffixes( word, morphologyDataNL ) {\n\t/*\n\t * Put i and y in between vowels, initial y, and y after a vowel into upper case. This is because they should\n\t * be treated as consonants so we want to differentiate them from other i's and y's when matching regexes.\n\t */\n\tword = modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.IAndYToUppercase );\n\n\t// Find the start index of the R1 region.\n\tconst r1Index = determineR1( word );\n\n\t// Import the suffixes from all three steps.\n\tconst suffixSteps = morphologyDataNL.regularStemmer.suffixes;\n\n\t// Run through the three steps of possible de-suffixation.\n\tword = findAndDeleteSuffixes( word, suffixSteps, r1Index, morphologyDataNL );\n\n\t// Do final modifications to the stem.\n\treturn modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.finalChanges );\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"detectAndStemSuffixes.js","names":["isVowelDoublingAllowed","modifyStem","determineR1","word","r1Index","search","findSuffix","suffixStep","suffixStepArray","Object","entries","suffixClass","suffixes","matchedRegex","find","suffixRegex","RegExp","exec","matched","suffix","length","suffixIndex","lastIndexOf","stemModification","deleteSuffixAndModifyStem","morphologyDataNL","regularStemmer","stemModifications","hedenToHeid","substring","iedToId","endsWith","inkToIng","exceptionsStemModifications","pastParticipleStemmer","compoundVerbsPrefixes","doubleVowel","findAndDeleteSuffix","foundSuffix","findAndDeleteSuffixes","suffixSteps","suffixStepsArray","detectAndStemSuffixes","IAndYToUppercase","finalChanges"],"sources":["../../../../../../src/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js"],"sourcesContent":["/**\n * @file Dutch stemming algorithm. Adapted from:\n * @author:\n * @copyright\n * All rights reserved.\n * Implementation of the stemming algorithm from http://snowball.tartarus.org/algorithms/dutch/stemmer.html\n * Copyright of the algorithm is: Copyright (c) 2001, Dr Martin Porter and can be found at http://snowball.tartarus.org/license.php\n *\n * Redistribution and use in source and binary forms, with or without modification, is covered by the standard BSD license.\n */\n\nimport { isVowelDoublingAllowed, modifyStem } from \"./stemModificationHelpers\";\n\n/**\n * Determines the start index of the R1 region.\n * R1 is the region after the first non-vowel following a vowel. It should include at least 3 letters.\n *\n * @param {string} word The word for which to determine the R1 region.\n * @returns {number} The start index of the R1 region.\n */\nconst determineR1 = function( word ) {\n\t// Start with matching the first cluster that consists of a vowel and a non-vowel.\n\tlet r1Index = word.search( /[aeiouyèäüëïöáéíóú][^aeiouyèäüëïöáéíóú]/ );\n\t// Then add 2 since the R1 index is the index after the first vowel & non-vowel matched with the regex.\n\tif ( r1Index !== -1 ) {\n\t\tr1Index += 2;\n\t}\n\n\t// Adjust R1 so that the region preceding it includes at least 3 letters.\n\tif ( r1Index !== -1 && r1Index < 3 ) {\n\t\tr1Index = 3;\n\t}\n\n\treturn r1Index;\n};\n\n/**\n * Searches for suffixes in a word.\n *\n * @param {string} word \t\tThe word in which to look for suffixes.\n * @param {Object} suffixStep\tOne of the three steps of findings suffixes.\n * @param {number} r1Index\t\tThe index of the R1 region.\n *\n * @returns {Object} The index of the suffix and extra information about whether, and how, the stem will need to be modified.\n */\nconst findSuffix = function( word, suffixStep, r1Index ) {\n\tconst suffixStepArray = Object.entries( suffixStep );\n\tfor ( const suffixClass of suffixStepArray ) {\n\t\tconst suffixes = suffixClass[ 1 ].suffixes;\n\n\t\tconst matchedRegex = suffixes.find( suffixRegex => new RegExp( suffixRegex ).exec( word ) );\n\n\t\tif ( matchedRegex ) {\n\t\t\tconst matched = new RegExp( matchedRegex ).exec( word );\n\t\t\tconst suffix = matched[ matched.length - 1 ];\n\t\t\tconst suffixIndex = word.lastIndexOf( suffix );\n\n\t\t\tif ( r1Index !== -1 && suffixIndex >= r1Index ) {\n\t\t\t\treturn {\n\t\t\t\t\tsuffixIndex: suffixIndex,\n\t\t\t\t\tstemModification: suffixClass[ 1 ].stemModification,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * Deletes the suffix and modifies the stem according to the required modifications.\n *\n * @param {string} word\t The word from which to delete the suffix.\n * @param {Object} suffixStep \tOne of the three steps of deleting a suffix.\n * @param {number} suffixIndex\t The index of the found suffix.\n * @param {string} stemModification \tThe type of stem modification that needs to be done.\n * @param {Object} morphologyDataNL\t The Dutch morphology data file.\n * @returns {string} The stemmed and modified word.\n */\nconst deleteSuffixAndModifyStem = function( word, suffixStep, suffixIndex, stemModification, morphologyDataNL ) {\n\tif ( stemModification === \"hedenToHeid\" ) {\n\t\treturn modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.hedenToHeid );\n\t}\n\tword = word.substring( 0, suffixIndex );\n\tif ( stemModification === \"changeIedtoId\" ) {\n\t\treturn modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.iedToId );\n\t} else if ( stemModification === \"changeInktoIng\" && word.endsWith( \"ink\" ) ) {\n\t\treturn modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.inkToIng );\n\t} else if (\n\t\tstemModification === \"vowelDoubling\" &&\n\t\tisVowelDoublingAllowed(\n\t\t\tword,\n\t\t\tmorphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications,\n\t\t\tmorphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes\n\t\t)\n\t) {\n\t\treturn modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.doubleVowel );\n\t}\n\treturn word;\n};\n\n/**\n * Finds and deletes the suffix found in a particular step, and modifies the stem.\n *\n * @param {string} word \tThe word for which to find and delete a suffix.\n * @param {Object} suffixStep\t One of the three suffix steps.\n * @param {number} r1Index\t The index of the R1 region.\n * @param {Object} morphologyDataNL\t The Dutch morphology data file.\n * @returns {string} The word with the deleted suffix.\n */\nconst findAndDeleteSuffix = function( word, suffixStep, r1Index, morphologyDataNL ) {\n\tconst foundSuffix = findSuffix( word, suffixStep, r1Index );\n\tif ( typeof foundSuffix !== \"undefined\" ) {\n\t\tword = deleteSuffixAndModifyStem( word, suffixStep, foundSuffix.suffixIndex, foundSuffix.stemModification, morphologyDataNL );\n\t}\n\n\treturn word;\n};\n\n/**\n * Runs through three stemming steps that process different kinds of suffixes, determines if there is a valid suffix\n * within the R1 region that can be deleted for stemming and deletes it, as well as applies suffix-specific stem\n * modifications if needed.\n *\n * @param {string} word \tThe word for which to find and delete suffixes.\n * @param {Object} suffixSteps\t All of the suffix steps.\n * @param {number} r1Index\t The index of the R1 region\n * @param {Object} morphologyDataNL \tThe Dutch morphology data file.\n * @returns {string} The word with the delete suffix.\n */\nconst findAndDeleteSuffixes = function( word, suffixSteps, r1Index, morphologyDataNL ) {\n\tconst suffixStepsArray = Object.entries( suffixSteps );\n\tfor ( const suffixStep of suffixStepsArray ) {\n\t\tword = findAndDeleteSuffix( word, suffixStep[ 1 ], r1Index, morphologyDataNL );\n\t}\n\n\treturn word;\n};\n\n/**\n * Search for suffixes in a word, remove them if found, and modify the stem if needed.\n *\n * @param {string} word The word to stem.\n * @param {Object} morphologyDataNL The Dutch morphology data file.\n *\n * @returns {string} The stemmed word.\n */\nexport default function detectAndStemSuffixes( word, morphologyDataNL ) {\n\t/*\n\t * Put i and y in between vowels, initial y, and y after a vowel into upper case. This is because they should\n\t * be treated as consonants so we want to differentiate them from other i's and y's when matching regexes.\n\t */\n\tword = modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.IAndYToUppercase );\n\n\t// Find the start index of the R1 region.\n\tconst r1Index = determineR1( word );\n\n\t// Import the suffixes from all three steps.\n\tconst suffixSteps = morphologyDataNL.regularStemmer.suffixes;\n\n\t// Run through the three steps of possible de-suffixation.\n\tword = findAndDeleteSuffixes( word, suffixSteps, r1Index, morphologyDataNL );\n\n\t// Do final modifications to the stem.\n\treturn modifyStem( word, morphologyDataNL.regularStemmer.stemModifications.finalChanges );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,20 +1,14 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = determineStem;
7
- var _lodash = require("lodash");
8
- var _index = require("../../../index");
9
- var _stem = _interopRequireDefault(require("./stem"));
10
- var _stemTOrDFromEndOfWord = require("./stemTOrDFromEndOfWord");
11
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
1
+ import { flatten } from 'lodash';
2
+ import { languageProcessing } from "../../../../../index.js";
12
3
  const {
13
4
  flattenSortLength,
14
5
  exceptionListHelpers: {
15
6
  checkExceptionListWithTwoStems
16
7
  }
17
- } = _index.languageProcessing;
8
+ } = languageProcessing;
9
+ import stem from "./stem";
10
+ import { stemTOrDFromEndOfWord } from "./stemTOrDFromEndOfWord";
11
+
18
12
  /**
19
13
  * Checks if the word checked is in the list of strong verbs exceptions. If it is, only return the first stem from the stem set.
20
14
  * E.g. stems: help, hielp, geholp -> the stem returned would be "help".
@@ -26,7 +20,7 @@ const {
26
20
  const checkStrongVerbExceptionList = function (strongVerbsLists, stemmedWord) {
27
21
  for (const key of Object.keys(strongVerbsLists)) {
28
22
  for (const stemsSet of strongVerbsLists[key]) {
29
- const stems = (0, _lodash.flatten)(Object.values(stemsSet));
23
+ const stems = flatten(Object.values(stemsSet));
30
24
  if (stems.includes(stemmedWord)) {
31
25
  return stems[0];
32
26
  }
@@ -92,8 +86,8 @@ const findStemOnVerbExceptionList = function (morphologyDataNL, stemmedWord) {
92
86
  *
93
87
  * @returns {string} The unique stem.
94
88
  */
95
- function determineStem(word, morphologyDataNL) {
96
- const stemmedWord = (0, _stem.default)(word, morphologyDataNL);
89
+ export default function determineStem(word, morphologyDataNL) {
90
+ const stemmedWord = stem(word, morphologyDataNL);
97
91
 
98
92
  // Check whether the stemmed word is on an exception list of words with multiple stems. If it is, return the canonical stem.
99
93
  let stemFromExceptionList = checkExceptionListWithTwoStems(morphologyDataNL.stemExceptions.stemmingExceptionsWithMultipleStems.stemmingExceptionsWithTwoStems, stemmedWord);
@@ -109,7 +103,7 @@ function determineStem(word, morphologyDataNL) {
109
103
  const ambiguousEndings = morphologyDataNL.ambiguousTAndDEndings.tAndDEndings;
110
104
  for (const ending of ambiguousEndings) {
111
105
  if (stemmedWord.endsWith(ending)) {
112
- const stemmedWordWithoutTOrD = (0, _stemTOrDFromEndOfWord.stemTOrDFromEndOfWord)(morphologyDataNL, stemmedWord, word);
106
+ const stemmedWordWithoutTOrD = stemTOrDFromEndOfWord(morphologyDataNL, stemmedWord, word);
113
107
  if (stemmedWordWithoutTOrD) {
114
108
  return stemmedWordWithoutTOrD;
115
109
  }
@@ -1 +1 @@
1
- {"version":3,"file":"determineStem.js","names":["_lodash","require","_index","_stem","_interopRequireDefault","_stemTOrDFromEndOfWord","e","__esModule","default","flattenSortLength","exceptionListHelpers","checkExceptionListWithTwoStems","languageProcessing","checkStrongVerbExceptionList","strongVerbsLists","stemmedWord","key","Object","keys","stemsSet","stems","flatten","values","includes","findStemOnVerbExceptionList","morphologyDataNL","prefixes","pastParticipleStemmer","compoundVerbsPrefixes","foundPrefix","find","prefix","startsWith","doNotStemPrefix","stemExceptions","stemmingExceptionsWithMultipleStems","strongAndIrregularVerbs","doNotStemPrefixException","exception","endsWith","stemmedWordWithoutPrefix","slice","length","strongVerbExceptions","strongVerbStems","strongVerbsExceptionLists","irregularStrongVerbs","regularStrongVerbs","bothRegularAndIrregularStrongVerbs","i","checkIfWordIsException","determineStem","word","stem","stemFromExceptionList","stemmingExceptionsWithTwoStems","ambiguousEndings","ambiguousTAndDEndings","tAndDEndings","ending","stemmedWordWithoutTOrD","stemTOrDFromEndOfWord"],"sources":["../../../../../../src/languageProcessing/languages/nl/helpers/internal/determineStem.js"],"sourcesContent":["import {flatten} from 'lodash';\nimport {languageProcessing} from '../../../index';\nconst {\n flattenSortLength,\n exceptionListHelpers: {checkExceptionListWithTwoStems}\n} = languageProcessing;\n\nimport stem from './stem';\nimport {stemTOrDFromEndOfWord} from './stemTOrDFromEndOfWord';\n\n/**\n * Checks if the word checked is in the list of strong verbs exceptions. If it is, only return the first stem from the stem set.\n * E.g. stems: help, hielp, geholp -> the stem returned would be \"help\".\n *\n * @param {Object} strongVerbsLists\tThe exception lists of strong verbs.\n * @param {string} stemmedWord The word to check.\n * @returns {string} The unique stem.\n */\nconst checkStrongVerbExceptionList = function(strongVerbsLists, stemmedWord) {\n for (const key of Object.keys(strongVerbsLists)) {\n for (const stemsSet of strongVerbsLists[key]) {\n const stems = flatten(Object.values(stemsSet));\n if (stems.includes(stemmedWord)) {\n return stems[0];\n }\n }\n }\n};\n\n/**\n * Checks if the word checked is in the list of strong verbs exceptions. Before checking, see if the word has a prefix and delete it if it does.\n * If the stem after prefix deletion is in the verb exception list, only return the first stem from the stem set and attach back the prefix.\n * E.g. words to check: verhielp, stem set: help, hielp, geholp -> the stem returned would be \"verhelp\".\n *\n * @param {Object} morphologyDataNL \tThe Dutch morphology data file.\n * @param {string} stemmedWord \t\tThe word to check.\n *\n * @returns {string} The unique stem.\n */\nconst findStemOnVerbExceptionList = function(morphologyDataNL, stemmedWord) {\n const prefixes = flattenSortLength(morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes);\n // Check whether the inputted stem is started with one of the separable compound prefixes\n let foundPrefix = prefixes.find(prefix => stemmedWord.startsWith(prefix));\n const doNotStemPrefix =\n morphologyDataNL.stemExceptions.stemmingExceptionsWithMultipleStems.strongAndIrregularVerbs\n .doNotStemPrefix;\n const doNotStemPrefixException = doNotStemPrefix.find(exception =>\n stemmedWord.endsWith(exception)\n );\n let stemmedWordWithoutPrefix = '';\n\n // Check whether the stemmedWord is in the list of strong verbs starting with be-, ont- or ver- that do not need to be stemmed.\n if (doNotStemPrefixException) {\n // Reset foundPrefix so that it won't be attached when the stem is found in the verb exception list.\n foundPrefix = null;\n // If the inputted stem is started with one of the separable compound prefixes, the prefix needs to be deleted for now.\n } else if (foundPrefix) {\n // Delete the prefix for now.\n stemmedWordWithoutPrefix = stemmedWord.slice(foundPrefix.length, stemmedWord.length);\n // At least 3 characters left after prefix deletion so that e.g. \"be\" is not found in the stem \"berg\".\n if (stemmedWordWithoutPrefix.length > 2) {\n stemmedWord = stemmedWordWithoutPrefix;\n } else {\n // Reset foundPrefix so that it won't be attached when the stem is found in the verb exception list.\n foundPrefix = null;\n }\n }\n\n const strongVerbExceptions =\n morphologyDataNL.stemExceptions.stemmingExceptionsWithMultipleStems.strongAndIrregularVerbs\n .strongVerbStems;\n // Find stem strong verbs lists.\n const strongVerbsExceptionLists = [\n strongVerbExceptions.irregularStrongVerbs,\n strongVerbExceptions.regularStrongVerbs,\n strongVerbExceptions.bothRegularAndIrregularStrongVerbs\n ];\n for (let i = 0; i < strongVerbsExceptionLists.length; i++) {\n const checkIfWordIsException = checkStrongVerbExceptionList(\n strongVerbsExceptionLists[i],\n stemmedWord\n );\n if (checkIfWordIsException) {\n // If the word checked had a prefix previously, attach it back.\n if (foundPrefix) {\n return (\n foundPrefix + checkStrongVerbExceptionList(strongVerbsExceptionLists[i], stemmedWord)\n );\n }\n // If the word checked did not have a prefix previously, only return the first stem.\n return checkStrongVerbExceptionList(strongVerbsExceptionLists[i], stemmedWord);\n }\n }\n};\n\n/**\n * Return the unique stem for a given Dutch input word.\n *\n * @param {string} word The word to be checked.\n * @param {Object} morphologyDataNL The Dutch data file.\n *\n * @returns {string} The unique stem.\n */\nexport default function determineStem(word, morphologyDataNL) {\n const stemmedWord = stem(word, morphologyDataNL);\n\n // Check whether the stemmed word is on an exception list of words with multiple stems. If it is, return the canonical stem.\n let stemFromExceptionList = checkExceptionListWithTwoStems(\n morphologyDataNL.stemExceptions.stemmingExceptionsWithMultipleStems\n .stemmingExceptionsWithTwoStems,\n stemmedWord\n );\n if (stemFromExceptionList) {\n return stemFromExceptionList;\n }\n stemFromExceptionList = findStemOnVerbExceptionList(morphologyDataNL, stemmedWord);\n if (stemFromExceptionList) {\n return stemFromExceptionList;\n }\n\n // If the stemmed word ends in -t or -d, check whether it should be stemmed further, and return the stem with or without the -t/d.\n const ambiguousEndings = morphologyDataNL.ambiguousTAndDEndings.tAndDEndings;\n for (const ending of ambiguousEndings) {\n if (stemmedWord.endsWith(ending)) {\n const stemmedWordWithoutTOrD = stemTOrDFromEndOfWord(morphologyDataNL, stemmedWord, word);\n if (stemmedWordWithoutTOrD) {\n return stemmedWordWithoutTOrD;\n }\n }\n }\n\n return stemmedWord;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAMA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,sBAAA,GAAAJ,OAAA;AAA8D,SAAAG,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAN9D,MAAM;EACJG,iBAAiB;EACjBC,oBAAoB,EAAE;IAACC;EAA8B;AACvD,CAAC,GAAGC,yBAAkB;AAKtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMC,4BAA4B,GAAG,SAAAA,CAASC,gBAAgB,EAAEC,WAAW,EAAE;EAC3E,KAAK,MAAMC,GAAG,IAAIC,MAAM,CAACC,IAAI,CAACJ,gBAAgB,CAAC,EAAE;IAC/C,KAAK,MAAMK,QAAQ,IAAIL,gBAAgB,CAACE,GAAG,CAAC,EAAE;MAC5C,MAAMI,KAAK,GAAG,IAAAC,eAAO,EAACJ,MAAM,CAACK,MAAM,CAACH,QAAQ,CAAC,CAAC;MAC9C,IAAIC,KAAK,CAACG,QAAQ,CAACR,WAAW,CAAC,EAAE;QAC/B,OAAOK,KAAK,CAAC,CAAC,CAAC;MACjB;IACF;EACF;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMI,2BAA2B,GAAG,SAAAA,CAASC,gBAAgB,EAAEV,WAAW,EAAE;EAC1E,MAAMW,QAAQ,GAAGjB,iBAAiB,CAACgB,gBAAgB,CAACE,qBAAqB,CAACC,qBAAqB,CAAC;EAChG;EACA,IAAIC,WAAW,GAAGH,QAAQ,CAACI,IAAI,CAACC,MAAM,IAAIhB,WAAW,CAACiB,UAAU,CAACD,MAAM,CAAC,CAAC;EACzE,MAAME,eAAe,GACnBR,gBAAgB,CAACS,cAAc,CAACC,mCAAmC,CAACC,uBAAuB,CACxFH,eAAe;EACpB,MAAMI,wBAAwB,GAAGJ,eAAe,CAACH,IAAI,CAACQ,SAAS,IAC7DvB,WAAW,CAACwB,QAAQ,CAACD,SAAS,CAChC,CAAC;EACD,IAAIE,wBAAwB,GAAG,EAAE;;EAEjC;EACA,IAAIH,wBAAwB,EAAE;IAC5B;IACAR,WAAW,GAAG,IAAI;IAClB;EACF,CAAC,MAAM,IAAIA,WAAW,EAAE;IACtB;IACAW,wBAAwB,GAAGzB,WAAW,CAAC0B,KAAK,CAACZ,WAAW,CAACa,MAAM,EAAE3B,WAAW,CAAC2B,MAAM,CAAC;IACpF;IACA,IAAIF,wBAAwB,CAACE,MAAM,GAAG,CAAC,EAAE;MACvC3B,WAAW,GAAGyB,wBAAwB;IACxC,CAAC,MAAM;MACL;MACAX,WAAW,GAAG,IAAI;IACpB;EACF;EAEA,MAAMc,oBAAoB,GACxBlB,gBAAgB,CAACS,cAAc,CAACC,mCAAmC,CAACC,uBAAuB,CACxFQ,eAAe;EACpB;EACA,MAAMC,yBAAyB,GAAG,CAChCF,oBAAoB,CAACG,oBAAoB,EACzCH,oBAAoB,CAACI,kBAAkB,EACvCJ,oBAAoB,CAACK,kCAAkC,CACxD;EACD,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGJ,yBAAyB,CAACH,MAAM,EAAEO,CAAC,EAAE,EAAE;IACzD,MAAMC,sBAAsB,GAAGrC,4BAA4B,CACzDgC,yBAAyB,CAACI,CAAC,CAAC,EAC5BlC,WACF,CAAC;IACD,IAAImC,sBAAsB,EAAE;MAC1B;MACA,IAAIrB,WAAW,EAAE;QACf,OACEA,WAAW,GAAGhB,4BAA4B,CAACgC,yBAAyB,CAACI,CAAC,CAAC,EAAElC,WAAW,CAAC;MAEzF;MACA;MACA,OAAOF,4BAA4B,CAACgC,yBAAyB,CAACI,CAAC,CAAC,EAAElC,WAAW,CAAC;IAChF;EACF;AACF,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASoC,aAAaA,CAACC,IAAI,EAAE3B,gBAAgB,EAAE;EAC5D,MAAMV,WAAW,GAAG,IAAAsC,aAAI,EAACD,IAAI,EAAE3B,gBAAgB,CAAC;;EAEhD;EACA,IAAI6B,qBAAqB,GAAG3C,8BAA8B,CACxDc,gBAAgB,CAACS,cAAc,CAACC,mCAAmC,CAChEoB,8BAA8B,EACjCxC,WACF,CAAC;EACD,IAAIuC,qBAAqB,EAAE;IACzB,OAAOA,qBAAqB;EAC9B;EACAA,qBAAqB,GAAG9B,2BAA2B,CAACC,gBAAgB,EAAEV,WAAW,CAAC;EAClF,IAAIuC,qBAAqB,EAAE;IACzB,OAAOA,qBAAqB;EAC9B;;EAEA;EACA,MAAME,gBAAgB,GAAG/B,gBAAgB,CAACgC,qBAAqB,CAACC,YAAY;EAC5E,KAAK,MAAMC,MAAM,IAAIH,gBAAgB,EAAE;IACrC,IAAIzC,WAAW,CAACwB,QAAQ,CAACoB,MAAM,CAAC,EAAE;MAChC,MAAMC,sBAAsB,GAAG,IAAAC,4CAAqB,EAACpC,gBAAgB,EAAEV,WAAW,EAAEqC,IAAI,CAAC;MACzF,IAAIQ,sBAAsB,EAAE;QAC1B,OAAOA,sBAAsB;MAC/B;IACF;EACF;EAEA,OAAO7C,WAAW;AACpB","ignoreList":[]}
1
+ {"version":3,"file":"determineStem.js","names":["flatten","languageProcessing","flattenSortLength","exceptionListHelpers","checkExceptionListWithTwoStems","stem","stemTOrDFromEndOfWord","checkStrongVerbExceptionList","strongVerbsLists","stemmedWord","key","Object","keys","stemsSet","stems","values","includes","findStemOnVerbExceptionList","morphologyDataNL","prefixes","pastParticipleStemmer","compoundVerbsPrefixes","foundPrefix","find","prefix","startsWith","doNotStemPrefix","stemExceptions","stemmingExceptionsWithMultipleStems","strongAndIrregularVerbs","doNotStemPrefixException","exception","endsWith","stemmedWordWithoutPrefix","slice","length","strongVerbExceptions","strongVerbStems","strongVerbsExceptionLists","irregularStrongVerbs","regularStrongVerbs","bothRegularAndIrregularStrongVerbs","i","checkIfWordIsException","determineStem","word","stemFromExceptionList","stemmingExceptionsWithTwoStems","ambiguousEndings","ambiguousTAndDEndings","tAndDEndings","ending","stemmedWordWithoutTOrD"],"sources":["../../../../../../src/languageProcessing/languages/nl/helpers/internal/determineStem.js"],"sourcesContent":["import {flatten} from 'lodash';\nimport {languageProcessing} from '@axyseo/index.js';\nconst {\n flattenSortLength,\n exceptionListHelpers: {checkExceptionListWithTwoStems}\n} = languageProcessing;\n\nimport stem from './stem';\nimport {stemTOrDFromEndOfWord} from './stemTOrDFromEndOfWord';\n\n/**\n * Checks if the word checked is in the list of strong verbs exceptions. If it is, only return the first stem from the stem set.\n * E.g. stems: help, hielp, geholp -> the stem returned would be \"help\".\n *\n * @param {Object} strongVerbsLists\tThe exception lists of strong verbs.\n * @param {string} stemmedWord The word to check.\n * @returns {string} The unique stem.\n */\nconst checkStrongVerbExceptionList = function(strongVerbsLists, stemmedWord) {\n for (const key of Object.keys(strongVerbsLists)) {\n for (const stemsSet of strongVerbsLists[key]) {\n const stems = flatten(Object.values(stemsSet));\n if (stems.includes(stemmedWord)) {\n return stems[0];\n }\n }\n }\n};\n\n/**\n * Checks if the word checked is in the list of strong verbs exceptions. Before checking, see if the word has a prefix and delete it if it does.\n * If the stem after prefix deletion is in the verb exception list, only return the first stem from the stem set and attach back the prefix.\n * E.g. words to check: verhielp, stem set: help, hielp, geholp -> the stem returned would be \"verhelp\".\n *\n * @param {Object} morphologyDataNL \tThe Dutch morphology data file.\n * @param {string} stemmedWord \t\tThe word to check.\n *\n * @returns {string} The unique stem.\n */\nconst findStemOnVerbExceptionList = function(morphologyDataNL, stemmedWord) {\n const prefixes = flattenSortLength(morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes);\n // Check whether the inputted stem is started with one of the separable compound prefixes\n let foundPrefix = prefixes.find(prefix => stemmedWord.startsWith(prefix));\n const doNotStemPrefix =\n morphologyDataNL.stemExceptions.stemmingExceptionsWithMultipleStems.strongAndIrregularVerbs\n .doNotStemPrefix;\n const doNotStemPrefixException = doNotStemPrefix.find(exception =>\n stemmedWord.endsWith(exception)\n );\n let stemmedWordWithoutPrefix = '';\n\n // Check whether the stemmedWord is in the list of strong verbs starting with be-, ont- or ver- that do not need to be stemmed.\n if (doNotStemPrefixException) {\n // Reset foundPrefix so that it won't be attached when the stem is found in the verb exception list.\n foundPrefix = null;\n // If the inputted stem is started with one of the separable compound prefixes, the prefix needs to be deleted for now.\n } else if (foundPrefix) {\n // Delete the prefix for now.\n stemmedWordWithoutPrefix = stemmedWord.slice(foundPrefix.length, stemmedWord.length);\n // At least 3 characters left after prefix deletion so that e.g. \"be\" is not found in the stem \"berg\".\n if (stemmedWordWithoutPrefix.length > 2) {\n stemmedWord = stemmedWordWithoutPrefix;\n } else {\n // Reset foundPrefix so that it won't be attached when the stem is found in the verb exception list.\n foundPrefix = null;\n }\n }\n\n const strongVerbExceptions =\n morphologyDataNL.stemExceptions.stemmingExceptionsWithMultipleStems.strongAndIrregularVerbs\n .strongVerbStems;\n // Find stem strong verbs lists.\n const strongVerbsExceptionLists = [\n strongVerbExceptions.irregularStrongVerbs,\n strongVerbExceptions.regularStrongVerbs,\n strongVerbExceptions.bothRegularAndIrregularStrongVerbs\n ];\n for (let i = 0; i < strongVerbsExceptionLists.length; i++) {\n const checkIfWordIsException = checkStrongVerbExceptionList(\n strongVerbsExceptionLists[i],\n stemmedWord\n );\n if (checkIfWordIsException) {\n // If the word checked had a prefix previously, attach it back.\n if (foundPrefix) {\n return (\n foundPrefix + checkStrongVerbExceptionList(strongVerbsExceptionLists[i], stemmedWord)\n );\n }\n // If the word checked did not have a prefix previously, only return the first stem.\n return checkStrongVerbExceptionList(strongVerbsExceptionLists[i], stemmedWord);\n }\n }\n};\n\n/**\n * Return the unique stem for a given Dutch input word.\n *\n * @param {string} word The word to be checked.\n * @param {Object} morphologyDataNL The Dutch data file.\n *\n * @returns {string} The unique stem.\n */\nexport default function determineStem(word, morphologyDataNL) {\n const stemmedWord = stem(word, morphologyDataNL);\n\n // Check whether the stemmed word is on an exception list of words with multiple stems. If it is, return the canonical stem.\n let stemFromExceptionList = checkExceptionListWithTwoStems(\n morphologyDataNL.stemExceptions.stemmingExceptionsWithMultipleStems\n .stemmingExceptionsWithTwoStems,\n stemmedWord\n );\n if (stemFromExceptionList) {\n return stemFromExceptionList;\n }\n stemFromExceptionList = findStemOnVerbExceptionList(morphologyDataNL, stemmedWord);\n if (stemFromExceptionList) {\n return stemFromExceptionList;\n }\n\n // If the stemmed word ends in -t or -d, check whether it should be stemmed further, and return the stem with or without the -t/d.\n const ambiguousEndings = morphologyDataNL.ambiguousTAndDEndings.tAndDEndings;\n for (const ending of ambiguousEndings) {\n if (stemmedWord.endsWith(ending)) {\n const stemmedWordWithoutTOrD = stemTOrDFromEndOfWord(morphologyDataNL, stemmedWord, word);\n if (stemmedWordWithoutTOrD) {\n return stemmedWordWithoutTOrD;\n }\n }\n }\n\n return stemmedWord;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,17 +1,11 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = getParticiples;
7
- var _lodash = require("lodash");
8
- var _index = require("../../../index");
9
- var _passiveVoiceIrregulars = _interopRequireDefault(require("../../config/internal/passiveVoiceIrregulars"));
10
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
1
+ import { includes } from 'lodash';
2
+ import { languageProcessing } from "../../../../../index.js";
11
3
  const {
12
4
  getWords,
13
5
  matchRegularParticiples
14
- } = _index.languageProcessing;
6
+ } = languageProcessing;
7
+ import irregularParticiples from "../../config/internal/passiveVoiceIrregulars";
8
+
15
9
  /**
16
10
  * Creates an array of participle for the participles found in a clause.
17
11
  *
@@ -19,9 +13,9 @@ const {
19
13
  *
20
14
  * @returns {Array} The list with participle.
21
15
  */
22
- function getParticiples(clauseText) {
16
+ export default function getParticiples(clauseText) {
23
17
  const words = getWords(clauseText);
24
18
  const regexes = [/^(ge|be|ont|ver|her|er)\S+([dt])($|[ \n\r\t.,'()"+\-;!?:/»«‹›<>])/gi, /^(aan|af|bij|binnen|los|mee|na|neer|om|onder|samen|terug|tegen|toe|uit|vast)(ge)\S+([dtn])($|[ \n\r\t.,'()"+\-;!?:/»«‹›<>])/gi];
25
- return words.filter(word => matchRegularParticiples(word, regexes).length !== 0 || (0, _lodash.includes)(_passiveVoiceIrregulars.default, word));
19
+ return words.filter(word => matchRegularParticiples(word, regexes).length !== 0 || includes(irregularParticiples, word));
26
20
  }
27
21
  //# sourceMappingURL=getParticiples.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getParticiples.js","names":["_lodash","require","_index","_passiveVoiceIrregulars","_interopRequireDefault","e","__esModule","default","getWords","matchRegularParticiples","languageProcessing","getParticiples","clauseText","words","regexes","filter","word","length","includes","irregularParticiples"],"sources":["../../../../../../src/languageProcessing/languages/nl/helpers/internal/getParticiples.js"],"sourcesContent":["import {includes} from 'lodash';\nimport {languageProcessing} from '../../../index';\nconst {getWords, matchRegularParticiples} = languageProcessing;\n\nimport irregularParticiples from '../../config/internal/passiveVoiceIrregulars';\n\n/**\n * Creates an array of participle for the participles found in a clause.\n *\n * @param {string} clauseText The clause text to find participles in.\n *\n * @returns {Array} The list with participle.\n */\nexport default function getParticiples(clauseText) {\n const words = getWords(clauseText);\n const regexes = [\n /^(ge|be|ont|ver|her|er)\\S+([dt])($|[ \\n\\r\\t.,'()\"+\\-;!?:/»«‹›<>])/gi,\n /^(aan|af|bij|binnen|los|mee|na|neer|om|onder|samen|terug|tegen|toe|uit|vast)(ge)\\S+([dtn])($|[ \\n\\r\\t.,'()\"+\\-;!?:/»«‹›<>])/gi\n ];\n\n return words.filter(\n word =>\n matchRegularParticiples(word, regexes).length !== 0 || includes(irregularParticiples, word)\n );\n}\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AAGA,IAAAE,uBAAA,GAAAC,sBAAA,CAAAH,OAAA;AAAgF,SAAAG,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAFhF,MAAM;EAACG,QAAQ;EAAEC;AAAuB,CAAC,GAAGC,yBAAkB;AAI9D;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,cAAcA,CAACC,UAAU,EAAE;EACjD,MAAMC,KAAK,GAAGL,QAAQ,CAACI,UAAU,CAAC;EAClC,MAAME,OAAO,GAAG,CACd,qEAAqE,EACrE,+HAA+H,CAChI;EAED,OAAOD,KAAK,CAACE,MAAM,CACjBC,IAAI,IACFP,uBAAuB,CAACO,IAAI,EAAEF,OAAO,CAAC,CAACG,MAAM,KAAK,CAAC,IAAI,IAAAC,gBAAQ,EAACC,+BAAoB,EAAEH,IAAI,CAC9F,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"getParticiples.js","names":["includes","languageProcessing","getWords","matchRegularParticiples","irregularParticiples","getParticiples","clauseText","words","regexes","filter","word","length"],"sources":["../../../../../../src/languageProcessing/languages/nl/helpers/internal/getParticiples.js"],"sourcesContent":["import {includes} from 'lodash';\nimport {languageProcessing} from '@axyseo/index.js';\nconst {getWords, matchRegularParticiples} = languageProcessing;\n\nimport irregularParticiples from '../../config/internal/passiveVoiceIrregulars';\n\n/**\n * Creates an array of participle for the participles found in a clause.\n *\n * @param {string} clauseText The clause text to find participles in.\n *\n * @returns {Array} The list with participle.\n */\nexport default function getParticiples(clauseText) {\n const words = getWords(clauseText);\n const regexes = [\n /^(ge|be|ont|ver|her|er)\\S+([dt])($|[ \\n\\r\\t.,'()\"+\\-;!?:/»«‹›<>])/gi,\n /^(aan|af|bij|binnen|los|mee|na|neer|om|onder|samen|terug|tegen|toe|uit|vast)(ge)\\S+([dtn])($|[ \\n\\r\\t.,'()\"+\\-;!?:/»«‹›<>])/gi\n ];\n\n return words.filter(\n word =>\n matchRegularParticiples(word, regexes).length !== 0 || includes(irregularParticiples, word)\n );\n}\n"],"mappings":"AAAA,SAAQA,QAAQ,QAAO,QAAQ;AAC/B,SAAQC,kBAAkB;AAC1B,MAAM;EAACC,QAAQ;EAAEC;AAAuB,CAAC,GAAGF,kBAAkB;AAE9D,OAAOG,oBAAoB;;AAE3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,cAAcA,CAACC,UAAU,EAAE;EACjD,MAAMC,KAAK,GAAGL,QAAQ,CAACI,UAAU,CAAC;EAClC,MAAME,OAAO,GAAG,CACd,qEAAqE,EACrE,+HAA+H,CAChI;EAED,OAAOD,KAAK,CAACE,MAAM,CACjBC,IAAI,IACFP,uBAAuB,CAACO,IAAI,EAAEF,OAAO,CAAC,CAACG,MAAM,KAAK,CAAC,IAAIX,QAAQ,CAACI,oBAAoB,EAAEM,IAAI,CAC9F,CAAC;AACH","ignoreList":[]}
@@ -1,11 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.generateCorrectStemWithTAndDEnding = generateCorrectStemWithTAndDEnding;
7
- var _index = require("../../../index");
8
- var _stemModificationHelpers = require("./stemModificationHelpers");
1
+ import { languageProcessing } from "../../../../../index.js";
9
2
  const {
10
3
  regexHelpers: {
11
4
  searchAndReplaceWithRegex,
@@ -15,7 +8,9 @@ const {
15
8
  checkIfWordEndingIsOnExceptionList,
16
9
  checkIfWordIsOnListThatCanHavePrefix
17
10
  }
18
- } = _index.languageProcessing;
11
+ } = languageProcessing;
12
+ import { isVowelDoublingAllowed } from "./stemModificationHelpers";
13
+
19
14
  /**
20
15
  * Checks whether the word ends in suffixes -e or -en which are preceded by -t or -d, and the -t/-d is part of the stem.
21
16
  * If it does, stem the -e/-en. Also checks if after suffix deletion the stemmed word needs modification, and applies it if
@@ -30,7 +25,7 @@ const {
30
25
  const stemWordsWithEOrEnSuffix = function (morphologyDataNL, regexAndReplacement, word) {
31
26
  if (doesWordMatchRegex(word, regexAndReplacement[0])) {
32
27
  const stemmedWord = word.replace(new RegExp(regexAndReplacement[0]), regexAndReplacement[1]);
33
- if ((0, _stemModificationHelpers.isVowelDoublingAllowed)(stemmedWord, morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications, morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes)) {
28
+ if (isVowelDoublingAllowed(stemmedWord, morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications, morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes)) {
34
29
  const replacement = searchAndReplaceWithRegex(stemmedWord, morphologyDataNL.regularStemmer.stemModifications.doubleVowel);
35
30
  return replacement ? replacement : stemmedWord;
36
31
  }
@@ -75,7 +70,7 @@ const checkWhetherTOrDIsPartOfStem = function (word, morphologyDataNL) {
75
70
  if (checkIfWordEndingIsOnExceptionList(word, tAndDPartOfStemData.wordsStemOnlyEnEnding.endingMatch) || checkIfWordIsOnListThatCanHavePrefix(word, tAndDPartOfStemData.wordsStemOnlyEnEnding.verbs, morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes) || doesWordMatchRegex(word, tAndDPartOfStemData.denEnding)) {
76
71
  stemmedWord = word.slice(0, -2);
77
72
  // Check if the vowel needs to be doubled after deleting suffix -en.
78
- if ((0, _stemModificationHelpers.isVowelDoublingAllowed)(stemmedWord, morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications, morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes)) {
73
+ if (isVowelDoublingAllowed(stemmedWord, morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications, morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes)) {
79
74
  const replacement = searchAndReplaceWithRegex(stemmedWord, morphologyDataNL.regularStemmer.stemModifications.doubleVowel);
80
75
  return replacement ? replacement : stemmedWord;
81
76
  }
@@ -116,7 +111,7 @@ const checkWhetherTOrDIsPartOfStem = function (word, morphologyDataNL) {
116
111
  *
117
112
  * @returns {?string} The stemmed word or null.
118
113
  */
119
- function generateCorrectStemWithTAndDEnding(morphologyDataNL, word) {
114
+ export function generateCorrectStemWithTAndDEnding(morphologyDataNL, word) {
120
115
  /*
121
116
  * Step 1:
122
117
  * - Check whether the word is in the exception list of words in which -t ending needs to be stemmed. If it is, stem -t.
@@ -1 +1 @@
1
- {"version":3,"file":"getStemWordsWithTAndDEnding.js","names":["_index","require","_stemModificationHelpers","regexHelpers","searchAndReplaceWithRegex","doesWordMatchRegex","exceptionListHelpers","checkIfWordEndingIsOnExceptionList","checkIfWordIsOnListThatCanHavePrefix","languageProcessing","stemWordsWithEOrEnSuffix","morphologyDataNL","regexAndReplacement","word","stemmedWord","replace","RegExp","isVowelDoublingAllowed","regularStemmer","stemModifications","exceptionsStemModifications","pastParticipleStemmer","compoundVerbsPrefixes","replacement","doubleVowel","checkWhetherTOrDIsPartOfStem","tAndDPartOfStemData","ambiguousTAndDEndings","tOrDArePartOfStem","firstTOrDPartOfStem","verbsDenShouldBeStemmed","includes","slice","wordsStemOnlyEnEnding","endingMatch","verbs","denEnding","dIsPartOfStemRegex","deEnding","tIsPartOfStemRegex","teAndTenEndings","generateCorrectStemWithTAndDEnding","wordsTShouldBeStemmed","tEnding"],"sources":["../../../../../../src/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js"],"sourcesContent":["import {languageProcessing} from '../../../index';\nconst {\n regexHelpers: {searchAndReplaceWithRegex, doesWordMatchRegex},\n exceptionListHelpers: {checkIfWordEndingIsOnExceptionList, checkIfWordIsOnListThatCanHavePrefix}\n} = languageProcessing;\n\nimport {isVowelDoublingAllowed} from './stemModificationHelpers';\n\n/**\n * Checks whether the word ends in suffixes -e or -en which are preceded by -t or -d, and the -t/-d is part of the stem.\n * If it does, stem the -e/-en. Also checks if after suffix deletion the stemmed word needs modification, and applies it if\n * needed. e.g. doden -> dod -> dood\n *\n * @param {Object} \t\tmorphologyDataNL\t\t\t \tThe Dutch morphology data file.\n * @param {string[]} \tregexAndReplacement\t\t\t\tThe regex to check and the string replacement that should be made.\n * @param {string} \t\tword\t\t\t\t\t\t\tThe word to be checked.\n *\n * @returns {?string}\t\t\t\t\t\t\tThe stem created or null.\n */\nconst stemWordsWithEOrEnSuffix = function(morphologyDataNL, regexAndReplacement, word) {\n if (doesWordMatchRegex(word, regexAndReplacement[0])) {\n const stemmedWord = word.replace(new RegExp(regexAndReplacement[0]), regexAndReplacement[1]);\n if (\n isVowelDoublingAllowed(\n stemmedWord,\n morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications,\n morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes\n )\n ) {\n const replacement = searchAndReplaceWithRegex(\n stemmedWord,\n morphologyDataNL.regularStemmer.stemModifications.doubleVowel\n );\n return replacement ? replacement : stemmedWord;\n }\n return stemmedWord;\n }\n\n return null;\n};\n\n/**\n * Stems words for which we know that -t/-d is the ending of the stem (so the -t/-d is not stemmed). This is done through\n * checking lists of words and matching the word with regexes.\n *\n * @param {string}\tword\t\t\t\t\t\t\t\tThe word to check.\n * @param {Object} \tmorphologyDataNL \t\t\t\t\tThe Dutch morphology data.\n *\n * @returns {?string} \t\t\t\t\t\t\tThe stemmed word, if matched in one of the checks, or null if not matched.\n */\nconst checkWhetherTOrDIsPartOfStem = function(word, morphologyDataNL) {\n const tAndDPartOfStemData = morphologyDataNL.ambiguousTAndDEndings.tOrDArePartOfStem;\n /*\n * Step 1:\n * - If the stem ends in -tte, -tten, -dde or -dden leave the first -t/-d and stem the remaining ending.\n * - Example: \"katten\" (-ten should be stemmed, leaving \"kat\").\n */\n let stemmedWord = searchAndReplaceWithRegex(word, tAndDPartOfStemData.firstTOrDPartOfStem);\n\n if (stemmedWord) {\n return stemmedWord;\n }\n\n /*\n * Step 2:\n * 2a)\n * - Checks whether the word is in the exception list of verbal forms ending in long vowel + -fden/sden. If so, stems -den off.\n * - Example: \"hoefden\" (-den should be stemmed, leaving \"hoef\").\n * 2b)\n * - Check whether the word has the suffix -en preceded by -d, where the -d is part of the stem. If it is, stem only -en.\n * - Example: \"eenden\" (-en should be stemmed, leaving \"eend\").\n */\n if (tAndDPartOfStemData.verbsDenShouldBeStemmed.includes(word)) {\n return word.slice(0, -3);\n }\n\n if (\n checkIfWordEndingIsOnExceptionList(\n word,\n tAndDPartOfStemData.wordsStemOnlyEnEnding.endingMatch\n ) ||\n checkIfWordIsOnListThatCanHavePrefix(\n word,\n tAndDPartOfStemData.wordsStemOnlyEnEnding.verbs,\n morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes\n ) ||\n doesWordMatchRegex(word, tAndDPartOfStemData.denEnding)\n ) {\n stemmedWord = word.slice(0, -2);\n //\tCheck if the vowel needs to be doubled after deleting suffix -en.\n if (\n isVowelDoublingAllowed(\n stemmedWord,\n morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications,\n morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes\n )\n ) {\n const replacement = searchAndReplaceWithRegex(\n stemmedWord,\n morphologyDataNL.regularStemmer.stemModifications.doubleVowel\n );\n return replacement ? replacement : stemmedWord;\n }\n return stemmedWord;\n }\n\n /*\n * Step 3:\n * - Checks whether the word matches the regex for words ending in -de with -d being part of the stem. If it is matched,\n * only stem the -e.\n * - Example: \"beenharde\" (-e should be stemmed, leaving \"beenhard\")\n */\n const dIsPartOfStemRegex = tAndDPartOfStemData.deEnding;\n stemmedWord = stemWordsWithEOrEnSuffix(morphologyDataNL, dIsPartOfStemRegex, word);\n\n if (stemmedWord) {\n return stemmedWord;\n }\n\n /*\n * Step 4:\n * - Checks whether the word matches the regex for words ending in -te or -ten with -t being part of the stem. If it is\n * matched, only stem the -e/-en.\n * - Example: \"castraten\" (-en should be stemmed, leaving \"castraat\")\n */\n const tIsPartOfStemRegex = tAndDPartOfStemData.teAndTenEndings;\n stemmedWord = stemWordsWithEOrEnSuffix(morphologyDataNL, tIsPartOfStemRegex, word);\n\n if (stemmedWord) {\n return stemmedWord;\n }\n\n return null;\n};\n\n/**\n * Creates the correct stem for words which end in ambiguous endings -t, -te, -ten, -de, or -den.\n *\n * @param {Object} \t\tmorphologyDataNL \t\t\t\t\tThe Dutch morphology data.\n * @param {string} \t\tword\t\t\t\t\t\t\t\tThe word to be checked.\n *\n * @returns {?string} \tThe stemmed word or null.\n */\nexport function generateCorrectStemWithTAndDEnding(morphologyDataNL, word) {\n /*\n * Step 1:\n * - Check whether the word is in the exception list of words in which -t ending needs to be stemmed. If it is, stem -t.\n * - Example: \"squasht\".\n * - This is an exception to one of the rule in step 2.\n */\n if (\n checkIfWordEndingIsOnExceptionList(\n word,\n morphologyDataNL.ambiguousTAndDEndings.wordsTShouldBeStemmed\n )\n ) {\n return word.slice(0, -1);\n }\n\n /*\n * Step 2:\n * - Check if word is matched by a regex for a t that shouldn't be stemmed.\n * - Example: \"boot\".\n */\n if (doesWordMatchRegex(word, morphologyDataNL.ambiguousTAndDEndings.tOrDArePartOfStem.tEnding)) {\n return word;\n }\n\n /*\n * Step 3:\n * - Check whether the word has another suffix that should be stemmed (e.g. -en) preceded by -t or -d which is part of the stem.\n * If yes, stem the suffix that should be stemmed and return the stem which ends in -t/-d.\n * - Example: \"tijden\" (only -en should be removed, not -den).\n */\n\n const stemmedWord = checkWhetherTOrDIsPartOfStem(word, morphologyDataNL);\n\n if (stemmedWord) {\n return stemmedWord;\n }\n\n return null;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"getStemWordsWithTAndDEnding.js","names":["languageProcessing","regexHelpers","searchAndReplaceWithRegex","doesWordMatchRegex","exceptionListHelpers","checkIfWordEndingIsOnExceptionList","checkIfWordIsOnListThatCanHavePrefix","isVowelDoublingAllowed","stemWordsWithEOrEnSuffix","morphologyDataNL","regexAndReplacement","word","stemmedWord","replace","RegExp","regularStemmer","stemModifications","exceptionsStemModifications","pastParticipleStemmer","compoundVerbsPrefixes","replacement","doubleVowel","checkWhetherTOrDIsPartOfStem","tAndDPartOfStemData","ambiguousTAndDEndings","tOrDArePartOfStem","firstTOrDPartOfStem","verbsDenShouldBeStemmed","includes","slice","wordsStemOnlyEnEnding","endingMatch","verbs","denEnding","dIsPartOfStemRegex","deEnding","tIsPartOfStemRegex","teAndTenEndings","generateCorrectStemWithTAndDEnding","wordsTShouldBeStemmed","tEnding"],"sources":["../../../../../../src/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js"],"sourcesContent":["import {languageProcessing} from '@axyseo/index.js';\nconst {\n regexHelpers: {searchAndReplaceWithRegex, doesWordMatchRegex},\n exceptionListHelpers: {checkIfWordEndingIsOnExceptionList, checkIfWordIsOnListThatCanHavePrefix}\n} = languageProcessing;\n\nimport {isVowelDoublingAllowed} from './stemModificationHelpers';\n\n/**\n * Checks whether the word ends in suffixes -e or -en which are preceded by -t or -d, and the -t/-d is part of the stem.\n * If it does, stem the -e/-en. Also checks if after suffix deletion the stemmed word needs modification, and applies it if\n * needed. e.g. doden -> dod -> dood\n *\n * @param {Object} \t\tmorphologyDataNL\t\t\t \tThe Dutch morphology data file.\n * @param {string[]} \tregexAndReplacement\t\t\t\tThe regex to check and the string replacement that should be made.\n * @param {string} \t\tword\t\t\t\t\t\t\tThe word to be checked.\n *\n * @returns {?string}\t\t\t\t\t\t\tThe stem created or null.\n */\nconst stemWordsWithEOrEnSuffix = function(morphologyDataNL, regexAndReplacement, word) {\n if (doesWordMatchRegex(word, regexAndReplacement[0])) {\n const stemmedWord = word.replace(new RegExp(regexAndReplacement[0]), regexAndReplacement[1]);\n if (\n isVowelDoublingAllowed(\n stemmedWord,\n morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications,\n morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes\n )\n ) {\n const replacement = searchAndReplaceWithRegex(\n stemmedWord,\n morphologyDataNL.regularStemmer.stemModifications.doubleVowel\n );\n return replacement ? replacement : stemmedWord;\n }\n return stemmedWord;\n }\n\n return null;\n};\n\n/**\n * Stems words for which we know that -t/-d is the ending of the stem (so the -t/-d is not stemmed). This is done through\n * checking lists of words and matching the word with regexes.\n *\n * @param {string}\tword\t\t\t\t\t\t\t\tThe word to check.\n * @param {Object} \tmorphologyDataNL \t\t\t\t\tThe Dutch morphology data.\n *\n * @returns {?string} \t\t\t\t\t\t\tThe stemmed word, if matched in one of the checks, or null if not matched.\n */\nconst checkWhetherTOrDIsPartOfStem = function(word, morphologyDataNL) {\n const tAndDPartOfStemData = morphologyDataNL.ambiguousTAndDEndings.tOrDArePartOfStem;\n /*\n * Step 1:\n * - If the stem ends in -tte, -tten, -dde or -dden leave the first -t/-d and stem the remaining ending.\n * - Example: \"katten\" (-ten should be stemmed, leaving \"kat\").\n */\n let stemmedWord = searchAndReplaceWithRegex(word, tAndDPartOfStemData.firstTOrDPartOfStem);\n\n if (stemmedWord) {\n return stemmedWord;\n }\n\n /*\n * Step 2:\n * 2a)\n * - Checks whether the word is in the exception list of verbal forms ending in long vowel + -fden/sden. If so, stems -den off.\n * - Example: \"hoefden\" (-den should be stemmed, leaving \"hoef\").\n * 2b)\n * - Check whether the word has the suffix -en preceded by -d, where the -d is part of the stem. If it is, stem only -en.\n * - Example: \"eenden\" (-en should be stemmed, leaving \"eend\").\n */\n if (tAndDPartOfStemData.verbsDenShouldBeStemmed.includes(word)) {\n return word.slice(0, -3);\n }\n\n if (\n checkIfWordEndingIsOnExceptionList(\n word,\n tAndDPartOfStemData.wordsStemOnlyEnEnding.endingMatch\n ) ||\n checkIfWordIsOnListThatCanHavePrefix(\n word,\n tAndDPartOfStemData.wordsStemOnlyEnEnding.verbs,\n morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes\n ) ||\n doesWordMatchRegex(word, tAndDPartOfStemData.denEnding)\n ) {\n stemmedWord = word.slice(0, -2);\n //\tCheck if the vowel needs to be doubled after deleting suffix -en.\n if (\n isVowelDoublingAllowed(\n stemmedWord,\n morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications,\n morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes\n )\n ) {\n const replacement = searchAndReplaceWithRegex(\n stemmedWord,\n morphologyDataNL.regularStemmer.stemModifications.doubleVowel\n );\n return replacement ? replacement : stemmedWord;\n }\n return stemmedWord;\n }\n\n /*\n * Step 3:\n * - Checks whether the word matches the regex for words ending in -de with -d being part of the stem. If it is matched,\n * only stem the -e.\n * - Example: \"beenharde\" (-e should be stemmed, leaving \"beenhard\")\n */\n const dIsPartOfStemRegex = tAndDPartOfStemData.deEnding;\n stemmedWord = stemWordsWithEOrEnSuffix(morphologyDataNL, dIsPartOfStemRegex, word);\n\n if (stemmedWord) {\n return stemmedWord;\n }\n\n /*\n * Step 4:\n * - Checks whether the word matches the regex for words ending in -te or -ten with -t being part of the stem. If it is\n * matched, only stem the -e/-en.\n * - Example: \"castraten\" (-en should be stemmed, leaving \"castraat\")\n */\n const tIsPartOfStemRegex = tAndDPartOfStemData.teAndTenEndings;\n stemmedWord = stemWordsWithEOrEnSuffix(morphologyDataNL, tIsPartOfStemRegex, word);\n\n if (stemmedWord) {\n return stemmedWord;\n }\n\n return null;\n};\n\n/**\n * Creates the correct stem for words which end in ambiguous endings -t, -te, -ten, -de, or -den.\n *\n * @param {Object} \t\tmorphologyDataNL \t\t\t\t\tThe Dutch morphology data.\n * @param {string} \t\tword\t\t\t\t\t\t\t\tThe word to be checked.\n *\n * @returns {?string} \tThe stemmed word or null.\n */\nexport function generateCorrectStemWithTAndDEnding(morphologyDataNL, word) {\n /*\n * Step 1:\n * - Check whether the word is in the exception list of words in which -t ending needs to be stemmed. If it is, stem -t.\n * - Example: \"squasht\".\n * - This is an exception to one of the rule in step 2.\n */\n if (\n checkIfWordEndingIsOnExceptionList(\n word,\n morphologyDataNL.ambiguousTAndDEndings.wordsTShouldBeStemmed\n )\n ) {\n return word.slice(0, -1);\n }\n\n /*\n * Step 2:\n * - Check if word is matched by a regex for a t that shouldn't be stemmed.\n * - Example: \"boot\".\n */\n if (doesWordMatchRegex(word, morphologyDataNL.ambiguousTAndDEndings.tOrDArePartOfStem.tEnding)) {\n return word;\n }\n\n /*\n * Step 3:\n * - Check whether the word has another suffix that should be stemmed (e.g. -en) preceded by -t or -d which is part of the stem.\n * If yes, stem the suffix that should be stemmed and return the stem which ends in -t/-d.\n * - Example: \"tijden\" (only -en should be removed, not -den).\n */\n\n const stemmedWord = checkWhetherTOrDIsPartOfStem(word, morphologyDataNL);\n\n if (stemmedWord) {\n return stemmedWord;\n }\n\n return null;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,16 +1,4 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = stem;
7
- var _index = require("../../../index");
8
- var _detectAndStemSuffixes = _interopRequireDefault(require("./detectAndStemSuffixes"));
9
- var _getStemWordsWithTAndDEnding = require("./getStemWordsWithTAndDEnding.js");
10
- var _checkExceptionsWithFullForms = _interopRequireDefault(require("./checkExceptionsWithFullForms"));
11
- var _detectAndStemRegularParticiple = require("./detectAndStemRegularParticiple");
12
- var _stemModificationHelpers = require("./stemModificationHelpers");
13
- function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
1
+ import { languageProcessing } from "../../../../../index.js";
14
2
  const {
15
3
  exceptionListHelpers: {
16
4
  checkIfWordEndingIsOnExceptionList,
@@ -20,7 +8,13 @@ const {
20
8
  removeSuffixFromFullForm,
21
9
  removeSuffixesFromFullForm
22
10
  }
23
- } = _index.languageProcessing;
11
+ } = languageProcessing;
12
+ import detectAndStemSuffixes from "./detectAndStemSuffixes";
13
+ import { generateCorrectStemWithTAndDEnding } from "./getStemWordsWithTAndDEnding.js";
14
+ import checkExceptionsWithFullForms from "./checkExceptionsWithFullForms";
15
+ import { detectAndStemRegularParticiple } from "./detectAndStemRegularParticiple";
16
+ import { modifyStem, isVowelDoublingAllowed } from "./stemModificationHelpers";
17
+
24
18
  /**
25
19
  * Get the stem from noun diminutives and plurals exceptions.
26
20
  *
@@ -68,11 +62,11 @@ const checkOtherStemmingExceptions = function (word, morphologyDataNL) {
68
62
  */
69
63
  let stemFromFullForm = removeSuffixFromFullForms(morphologyDataNL, word);
70
64
  if (stemFromFullForm) {
71
- if ((0, _stemModificationHelpers.isVowelDoublingAllowed)(stemFromFullForm, morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications, morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes)) {
72
- stemFromFullForm = (0, _stemModificationHelpers.modifyStem)(stemFromFullForm, morphologyDataNL.regularStemmer.stemModifications.doubleVowel);
73
- return (0, _stemModificationHelpers.modifyStem)(stemFromFullForm, morphologyDataNL.regularStemmer.stemModifications.finalChanges);
65
+ if (isVowelDoublingAllowed(stemFromFullForm, morphologyDataNL.regularStemmer.stemModifications.exceptionsStemModifications, morphologyDataNL.pastParticipleStemmer.compoundVerbsPrefixes)) {
66
+ stemFromFullForm = modifyStem(stemFromFullForm, morphologyDataNL.regularStemmer.stemModifications.doubleVowel);
67
+ return modifyStem(stemFromFullForm, morphologyDataNL.regularStemmer.stemModifications.finalChanges);
74
68
  }
75
- return (0, _stemModificationHelpers.modifyStem)(stemFromFullForm, morphologyDataNL.regularStemmer.stemModifications.finalChanges);
69
+ return modifyStem(stemFromFullForm, morphologyDataNL.regularStemmer.stemModifications.finalChanges);
76
70
  }
77
71
  return null;
78
72
  };
@@ -85,15 +79,15 @@ const checkOtherStemmingExceptions = function (word, morphologyDataNL) {
85
79
  *
86
80
  * @returns {string} The stemmed word.
87
81
  */
88
- function stem(word, morphologyDataNL) {
82
+ export default function stem(word, morphologyDataNL) {
89
83
  // Check whether the word is in the list of words with full forms for which we define the stem. If it is, return the canonical stem.
90
- let stemmedWord = (0, _checkExceptionsWithFullForms.default)(morphologyDataNL, word);
84
+ let stemmedWord = checkExceptionsWithFullForms(morphologyDataNL, word);
91
85
  if (stemmedWord) {
92
86
  return stemmedWord;
93
87
  }
94
88
 
95
89
  // Check whether the word is a participle, and if yes, stem it and return the stem.
96
- stemmedWord = (0, _detectAndStemRegularParticiple.detectAndStemRegularParticiple)(morphologyDataNL, word);
90
+ stemmedWord = detectAndStemRegularParticiple(morphologyDataNL, word);
97
91
  if (stemmedWord) {
98
92
  return stemmedWord;
99
93
  }
@@ -112,7 +106,7 @@ function stem(word, morphologyDataNL) {
112
106
  const tAndDEndings = morphologyDataNL.ambiguousTAndDEndings.otherTAndDEndings;
113
107
  for (const ending of tAndDEndings) {
114
108
  if (word.endsWith(ending)) {
115
- stemmedWord = (0, _getStemWordsWithTAndDEnding.generateCorrectStemWithTAndDEnding)(morphologyDataNL, word);
109
+ stemmedWord = generateCorrectStemWithTAndDEnding(morphologyDataNL, word);
116
110
  if (stemmedWord) {
117
111
  return stemmedWord;
118
112
  }
@@ -126,6 +120,6 @@ function stem(word, morphologyDataNL) {
126
120
  }
127
121
 
128
122
  // If the word was not stemmed in any of the previous steps, run through the stemming algorithm which detects and stems suffixes.
129
- return (0, _detectAndStemSuffixes.default)(word, morphologyDataNL);
123
+ return detectAndStemSuffixes(word, morphologyDataNL);
130
124
  }
131
125
  //# sourceMappingURL=stem.js.map