axyseo 2.0.0-alpha.1

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 (1256) hide show
  1. package/README.md +228 -0
  2. package/build/bundledPlugins/index.js +14 -0
  3. package/build/bundledPlugins/index.js.map +1 -0
  4. package/build/bundledPlugins/previouslyUsedKeywords.js +171 -0
  5. package/build/bundledPlugins/previouslyUsedKeywords.js.map +1 -0
  6. package/build/config/diacritics.js +140 -0
  7. package/build/config/diacritics.js.map +1 -0
  8. package/build/config/getTransliterations.js +3572 -0
  9. package/build/config/getTransliterations.js.map +1 -0
  10. package/build/config/transliterationsWPstyle.js +1424 -0
  11. package/build/config/transliterationsWPstyle.js.map +1 -0
  12. package/build/config/wordBoundaries.js +26 -0
  13. package/build/config/wordBoundaries.js.map +1 -0
  14. package/build/config/wordBoundariesWithoutPunctuation.js +16 -0
  15. package/build/config/wordBoundariesWithoutPunctuation.js.map +1 -0
  16. package/build/const/analysis.js +20 -0
  17. package/build/const/analysis.js.map +1 -0
  18. package/build/errors/invalidType.js +22 -0
  19. package/build/errors/invalidType.js.map +1 -0
  20. package/build/errors/missingArgument.js +22 -0
  21. package/build/errors/missingArgument.js.map +1 -0
  22. package/build/helpers/createMeasurementElement.js +46 -0
  23. package/build/helpers/createMeasurementElement.js.map +1 -0
  24. package/build/helpers/domManipulation.js +66 -0
  25. package/build/helpers/domManipulation.js.map +1 -0
  26. package/build/helpers/errors.js +26 -0
  27. package/build/helpers/errors.js.map +1 -0
  28. package/build/helpers/factory.js +207 -0
  29. package/build/helpers/factory.js.map +1 -0
  30. package/build/helpers/formatNumber.js +18 -0
  31. package/build/helpers/formatNumber.js.map +1 -0
  32. package/build/helpers/formatString.js +38 -0
  33. package/build/helpers/formatString.js.map +1 -0
  34. package/build/helpers/getLanguagesWithWordComplexity.js +15 -0
  35. package/build/helpers/getLanguagesWithWordComplexity.js.map +1 -0
  36. package/build/helpers/getLanguagesWithWordFormSupport.js +16 -0
  37. package/build/helpers/getLanguagesWithWordFormSupport.js.map +1 -0
  38. package/build/helpers/getWordComplexityConfig.js +27 -0
  39. package/build/helpers/getWordComplexityConfig.js.map +1 -0
  40. package/build/helpers/getWordComplexityHelper.js +27 -0
  41. package/build/helpers/getWordComplexityHelper.js.map +1 -0
  42. package/build/helpers/htmlEntities.js +21 -0
  43. package/build/helpers/htmlEntities.js.map +1 -0
  44. package/build/helpers/includesAny.js +24 -0
  45. package/build/helpers/includesAny.js.map +1 -0
  46. package/build/helpers/index.js +179 -0
  47. package/build/helpers/index.js.map +1 -0
  48. package/build/helpers/shortlinker/Shortlinker.js +79 -0
  49. package/build/helpers/shortlinker/Shortlinker.js.map +1 -0
  50. package/build/helpers/shortlinker/index.js +17 -0
  51. package/build/helpers/shortlinker/index.js.map +1 -0
  52. package/build/helpers/shortlinker/singleton.js +76 -0
  53. package/build/helpers/shortlinker/singleton.js.map +1 -0
  54. package/build/helpers/types.js +37 -0
  55. package/build/helpers/types.js.map +1 -0
  56. package/build/index.js +103 -0
  57. package/build/index.js.map +1 -0
  58. package/build/languageProcessing/AbstractResearcher.js +348 -0
  59. package/build/languageProcessing/AbstractResearcher.js.map +1 -0
  60. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +123 -0
  61. package/build/languageProcessing/helpers/highlighting/getMarkingsInSentence.js.map +1 -0
  62. package/build/languageProcessing/helpers/html/getFieldsToMark.js +37 -0
  63. package/build/languageProcessing/helpers/html/getFieldsToMark.js.map +1 -0
  64. package/build/languageProcessing/helpers/html/getSubheadingTexts.js +47 -0
  65. package/build/languageProcessing/helpers/html/getSubheadingTexts.js.map +1 -0
  66. package/build/languageProcessing/helpers/html/getSubheadings.js +92 -0
  67. package/build/languageProcessing/helpers/html/getSubheadings.js.map +1 -0
  68. package/build/languageProcessing/helpers/html/html.js +152 -0
  69. package/build/languageProcessing/helpers/html/html.js.map +1 -0
  70. package/build/languageProcessing/helpers/html/htmlParser.js +132 -0
  71. package/build/languageProcessing/helpers/html/htmlParser.js.map +1 -0
  72. package/build/languageProcessing/helpers/html/matchParagraphs.js +61 -0
  73. package/build/languageProcessing/helpers/html/matchParagraphs.js.map +1 -0
  74. package/build/languageProcessing/helpers/html/normalizeHTML.js +23 -0
  75. package/build/languageProcessing/helpers/html/normalizeHTML.js.map +1 -0
  76. package/build/languageProcessing/helpers/image/getAltAttribute.js +24 -0
  77. package/build/languageProcessing/helpers/image/getAltAttribute.js.map +1 -0
  78. package/build/languageProcessing/helpers/image/getImagesInTree.js +21 -0
  79. package/build/languageProcessing/helpers/image/getImagesInTree.js.map +1 -0
  80. package/build/languageProcessing/helpers/image/imageInText.js +26 -0
  81. package/build/languageProcessing/helpers/image/imageInText.js.map +1 -0
  82. package/build/languageProcessing/helpers/index.js +41 -0
  83. package/build/languageProcessing/helpers/index.js.map +1 -0
  84. package/build/languageProcessing/helpers/language/getLanguage.js +16 -0
  85. package/build/languageProcessing/helpers/language/getLanguage.js.map +1 -0
  86. package/build/languageProcessing/helpers/link/checkNofollow.js +42 -0
  87. package/build/languageProcessing/helpers/link/checkNofollow.js.map +1 -0
  88. package/build/languageProcessing/helpers/link/getAnchorsFromText.js +37 -0
  89. package/build/languageProcessing/helpers/link/getAnchorsFromText.js.map +1 -0
  90. package/build/languageProcessing/helpers/link/getLinkType.js +36 -0
  91. package/build/languageProcessing/helpers/link/getLinkType.js.map +1 -0
  92. package/build/languageProcessing/helpers/match/findKeywordFormsInString.js +101 -0
  93. package/build/languageProcessing/helpers/match/findKeywordFormsInString.js.map +1 -0
  94. package/build/languageProcessing/helpers/match/isDoubleQuoted.js +19 -0
  95. package/build/languageProcessing/helpers/match/isDoubleQuoted.js.map +1 -0
  96. package/build/languageProcessing/helpers/match/matchTextWithArray.js +41 -0
  97. package/build/languageProcessing/helpers/match/matchTextWithArray.js.map +1 -0
  98. package/build/languageProcessing/helpers/match/matchTextWithTransliteration.js +58 -0
  99. package/build/languageProcessing/helpers/match/matchTextWithTransliteration.js.map +1 -0
  100. package/build/languageProcessing/helpers/match/matchTextWithWord.js +47 -0
  101. package/build/languageProcessing/helpers/match/matchTextWithWord.js.map +1 -0
  102. package/build/languageProcessing/helpers/match/matchWordFormsWithSentence.js +162 -0
  103. package/build/languageProcessing/helpers/match/matchWordFormsWithSentence.js.map +1 -0
  104. package/build/languageProcessing/helpers/match/processExactMatchRequest.js +29 -0
  105. package/build/languageProcessing/helpers/match/processExactMatchRequest.js.map +1 -0
  106. package/build/languageProcessing/helpers/morphology/baseStemmer.js +18 -0
  107. package/build/languageProcessing/helpers/morphology/baseStemmer.js.map +1 -0
  108. package/build/languageProcessing/helpers/morphology/buildFormRule.js +26 -0
  109. package/build/languageProcessing/helpers/morphology/buildFormRule.js.map +1 -0
  110. package/build/languageProcessing/helpers/morphology/buildTopicStems.js +164 -0
  111. package/build/languageProcessing/helpers/morphology/buildTopicStems.js.map +1 -0
  112. package/build/languageProcessing/helpers/morphology/createRulesFromArrays.js +48 -0
  113. package/build/languageProcessing/helpers/morphology/createRulesFromArrays.js.map +1 -0
  114. package/build/languageProcessing/helpers/morphology/exceptionListHelpers.js +71 -0
  115. package/build/languageProcessing/helpers/morphology/exceptionListHelpers.js.map +1 -0
  116. package/build/languageProcessing/helpers/morphology/findMatchingEndingInArray.js +29 -0
  117. package/build/languageProcessing/helpers/morphology/findMatchingEndingInArray.js.map +1 -0
  118. package/build/languageProcessing/helpers/morphology/flattenSortLength.js +19 -0
  119. package/build/languageProcessing/helpers/morphology/flattenSortLength.js.map +1 -0
  120. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +35 -0
  121. package/build/languageProcessing/helpers/morphology/getAllWordsFromPaper.js.map +1 -0
  122. package/build/languageProcessing/helpers/morphology/regexHelpers.js +53 -0
  123. package/build/languageProcessing/helpers/morphology/regexHelpers.js.map +1 -0
  124. package/build/languageProcessing/helpers/morphology/stemHelpers.js +46 -0
  125. package/build/languageProcessing/helpers/morphology/stemHelpers.js.map +1 -0
  126. package/build/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js +39 -0
  127. package/build/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js.map +1 -0
  128. package/build/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js +42 -0
  129. package/build/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js.map +1 -0
  130. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js +116 -0
  131. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js.map +1 -0
  132. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js +45 -0
  133. package/build/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js.map +1 -0
  134. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js +220 -0
  135. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js.map +1 -0
  136. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js +27 -0
  137. package/build/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js.map +1 -0
  138. package/build/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js +28 -0
  139. package/build/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js.map +1 -0
  140. package/build/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js +46 -0
  141. package/build/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js.map +1 -0
  142. package/build/languageProcessing/helpers/prominentWords/determineProminentWords.js +203 -0
  143. package/build/languageProcessing/helpers/prominentWords/determineProminentWords.js.map +1 -0
  144. package/build/languageProcessing/helpers/regex/createRegexFromArray.js +38 -0
  145. package/build/languageProcessing/helpers/regex/createRegexFromArray.js.map +1 -0
  146. package/build/languageProcessing/helpers/regex/createRegexFromDoubleArray.js +39 -0
  147. package/build/languageProcessing/helpers/regex/createRegexFromDoubleArray.js.map +1 -0
  148. package/build/languageProcessing/helpers/regex/createWordRegex.js +34 -0
  149. package/build/languageProcessing/helpers/regex/createWordRegex.js.map +1 -0
  150. package/build/languageProcessing/helpers/regex/matchStringWithRegex.js +24 -0
  151. package/build/languageProcessing/helpers/regex/matchStringWithRegex.js.map +1 -0
  152. package/build/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js +21 -0
  153. package/build/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js.map +1 -0
  154. package/build/languageProcessing/helpers/sanitize/doubleQuotes.js +19 -0
  155. package/build/languageProcessing/helpers/sanitize/doubleQuotes.js.map +1 -0
  156. package/build/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js +131 -0
  157. package/build/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js.map +1 -0
  158. package/build/languageProcessing/helpers/sanitize/mergeListItems.js +30 -0
  159. package/build/languageProcessing/helpers/sanitize/mergeListItems.js.map +1 -0
  160. package/build/languageProcessing/helpers/sanitize/parseSynonyms.js +24 -0
  161. package/build/languageProcessing/helpers/sanitize/parseSynonyms.js.map +1 -0
  162. package/build/languageProcessing/helpers/sanitize/quotes.js +47 -0
  163. package/build/languageProcessing/helpers/sanitize/quotes.js.map +1 -0
  164. package/build/languageProcessing/helpers/sanitize/removeEmailAddresses.js +19 -0
  165. package/build/languageProcessing/helpers/sanitize/removeEmailAddresses.js.map +1 -0
  166. package/build/languageProcessing/helpers/sanitize/removePunctuation.js +64 -0
  167. package/build/languageProcessing/helpers/sanitize/removePunctuation.js.map +1 -0
  168. package/build/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js +24 -0
  169. package/build/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js.map +1 -0
  170. package/build/languageProcessing/helpers/sanitize/removeSentenceTerminators.js +20 -0
  171. package/build/languageProcessing/helpers/sanitize/removeSentenceTerminators.js.map +1 -0
  172. package/build/languageProcessing/helpers/sanitize/removeURLs.js +19 -0
  173. package/build/languageProcessing/helpers/sanitize/removeURLs.js.map +1 -0
  174. package/build/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js +18 -0
  175. package/build/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js.map +1 -0
  176. package/build/languageProcessing/helpers/sanitize/sanitizeString.js +23 -0
  177. package/build/languageProcessing/helpers/sanitize/sanitizeString.js.map +1 -0
  178. package/build/languageProcessing/helpers/sanitize/stripHTMLTags.js +59 -0
  179. package/build/languageProcessing/helpers/sanitize/stripHTMLTags.js.map +1 -0
  180. package/build/languageProcessing/helpers/sanitize/stripNonTextTags.js +22 -0
  181. package/build/languageProcessing/helpers/sanitize/stripNonTextTags.js.map +1 -0
  182. package/build/languageProcessing/helpers/sanitize/stripNumbers.js +26 -0
  183. package/build/languageProcessing/helpers/sanitize/stripNumbers.js.map +1 -0
  184. package/build/languageProcessing/helpers/sanitize/stripSpaces.js +29 -0
  185. package/build/languageProcessing/helpers/sanitize/stripSpaces.js.map +1 -0
  186. package/build/languageProcessing/helpers/sanitize/stripWordBoundaries.js +65 -0
  187. package/build/languageProcessing/helpers/sanitize/stripWordBoundaries.js.map +1 -0
  188. package/build/languageProcessing/helpers/sanitize/unifyWhitespace.js +64 -0
  189. package/build/languageProcessing/helpers/sanitize/unifyWhitespace.js.map +1 -0
  190. package/build/languageProcessing/helpers/sentence/SentenceTokenizer.js +565 -0
  191. package/build/languageProcessing/helpers/sentence/SentenceTokenizer.js.map +1 -0
  192. package/build/languageProcessing/helpers/sentence/countSentences.js +27 -0
  193. package/build/languageProcessing/helpers/sentence/countSentences.js.map +1 -0
  194. package/build/languageProcessing/helpers/sentence/getSentences.js +71 -0
  195. package/build/languageProcessing/helpers/sentence/getSentences.js.map +1 -0
  196. package/build/languageProcessing/helpers/sentence/getSentencesFromTree.js +60 -0
  197. package/build/languageProcessing/helpers/sentence/getSentencesFromTree.js.map +1 -0
  198. package/build/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js +37 -0
  199. package/build/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js.map +1 -0
  200. package/build/languageProcessing/helpers/sentence/sentencesLength.js +37 -0
  201. package/build/languageProcessing/helpers/sentence/sentencesLength.js.map +1 -0
  202. package/build/languageProcessing/helpers/syllables/DeviationFragment.js +108 -0
  203. package/build/languageProcessing/helpers/syllables/DeviationFragment.js.map +1 -0
  204. package/build/languageProcessing/helpers/syllables/countSyllables.js +173 -0
  205. package/build/languageProcessing/helpers/syllables/countSyllables.js.map +1 -0
  206. package/build/languageProcessing/helpers/syllables/syllableCountIterator.js +63 -0
  207. package/build/languageProcessing/helpers/syllables/syllableCountIterator.js.map +1 -0
  208. package/build/languageProcessing/helpers/syllables/syllableCountStep.js +75 -0
  209. package/build/languageProcessing/helpers/syllables/syllableCountStep.js.map +1 -0
  210. package/build/languageProcessing/helpers/transform/transformWordsWithHyphens.js +24 -0
  211. package/build/languageProcessing/helpers/transform/transformWordsWithHyphens.js.map +1 -0
  212. package/build/languageProcessing/helpers/transliterate/replaceDiacritics.js +25 -0
  213. package/build/languageProcessing/helpers/transliterate/replaceDiacritics.js.map +1 -0
  214. package/build/languageProcessing/helpers/transliterate/specialCharacterMappings.js +194 -0
  215. package/build/languageProcessing/helpers/transliterate/specialCharacterMappings.js.map +1 -0
  216. package/build/languageProcessing/helpers/transliterate/transliterate.js +24 -0
  217. package/build/languageProcessing/helpers/transliterate/transliterate.js.map +1 -0
  218. package/build/languageProcessing/helpers/transliterate/transliterateWPstyle.js +25 -0
  219. package/build/languageProcessing/helpers/transliterate/transliterateWPstyle.js.map +1 -0
  220. package/build/languageProcessing/helpers/url/parseSlug.js +17 -0
  221. package/build/languageProcessing/helpers/url/parseSlug.js.map +1 -0
  222. package/build/languageProcessing/helpers/url/url.js +174 -0
  223. package/build/languageProcessing/helpers/url/url.js.map +1 -0
  224. package/build/languageProcessing/helpers/word/addWordboundary.js +41 -0
  225. package/build/languageProcessing/helpers/word/addWordboundary.js.map +1 -0
  226. package/build/languageProcessing/helpers/word/areWordsInSentence.js +23 -0
  227. package/build/languageProcessing/helpers/word/areWordsInSentence.js.map +1 -0
  228. package/build/languageProcessing/helpers/word/countMetaDescriptionLength.js +24 -0
  229. package/build/languageProcessing/helpers/word/countMetaDescriptionLength.js.map +1 -0
  230. package/build/languageProcessing/helpers/word/countWords.js +21 -0
  231. package/build/languageProcessing/helpers/word/countWords.js.map +1 -0
  232. package/build/languageProcessing/helpers/word/createPunctuationTokens.js +46 -0
  233. package/build/languageProcessing/helpers/word/createPunctuationTokens.js.map +1 -0
  234. package/build/languageProcessing/helpers/word/filterWordsFromArray.js +21 -0
  235. package/build/languageProcessing/helpers/word/filterWordsFromArray.js.map +1 -0
  236. package/build/languageProcessing/helpers/word/followsIndex.js +29 -0
  237. package/build/languageProcessing/helpers/word/followsIndex.js.map +1 -0
  238. package/build/languageProcessing/helpers/word/getAllWordsFromTree.js +30 -0
  239. package/build/languageProcessing/helpers/word/getAllWordsFromTree.js.map +1 -0
  240. package/build/languageProcessing/helpers/word/getWords.js +47 -0
  241. package/build/languageProcessing/helpers/word/getWords.js.map +1 -0
  242. package/build/languageProcessing/helpers/word/includesIndex.js +34 -0
  243. package/build/languageProcessing/helpers/word/includesIndex.js.map +1 -0
  244. package/build/languageProcessing/helpers/word/indices.js +141 -0
  245. package/build/languageProcessing/helpers/word/indices.js.map +1 -0
  246. package/build/languageProcessing/helpers/word/markWordsInSentences.js +189 -0
  247. package/build/languageProcessing/helpers/word/markWordsInSentences.js.map +1 -0
  248. package/build/languageProcessing/helpers/word/matchWordInSentence.js +63 -0
  249. package/build/languageProcessing/helpers/word/matchWordInSentence.js.map +1 -0
  250. package/build/languageProcessing/helpers/word/splitIntoTokens.js +52 -0
  251. package/build/languageProcessing/helpers/word/splitIntoTokens.js.map +1 -0
  252. package/build/languageProcessing/index.js +283 -0
  253. package/build/languageProcessing/index.js.map +1 -0
  254. package/build/languageProcessing/languages/_default/Researcher.js +43 -0
  255. package/build/languageProcessing/languages/_default/Researcher.js.map +1 -0
  256. package/build/languageProcessing/languages/_default/helpers/getStemmer.js +20 -0
  257. package/build/languageProcessing/languages/_default/helpers/getStemmer.js.map +1 -0
  258. package/build/languageProcessing/languages/ar/Researcher.js +54 -0
  259. package/build/languageProcessing/languages/ar/Researcher.js.map +1 -0
  260. package/build/languageProcessing/languages/ar/config/firstWordExceptions.js +18 -0
  261. package/build/languageProcessing/languages/ar/config/firstWordExceptions.js.map +1 -0
  262. package/build/languageProcessing/languages/ar/config/functionWords.js +80 -0
  263. package/build/languageProcessing/languages/ar/config/functionWords.js.map +1 -0
  264. package/build/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js +13 -0
  265. package/build/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js.map +1 -0
  266. package/build/languageProcessing/languages/ar/config/prefixedFunctionWords.js +11 -0
  267. package/build/languageProcessing/languages/ar/config/prefixedFunctionWords.js.map +1 -0
  268. package/build/languageProcessing/languages/ar/config/transitionWords.js +13 -0
  269. package/build/languageProcessing/languages/ar/config/transitionWords.js.map +1 -0
  270. package/build/languageProcessing/languages/ar/config/twoPartTransitionWords.js +13 -0
  271. package/build/languageProcessing/languages/ar/config/twoPartTransitionWords.js.map +1 -0
  272. package/build/languageProcessing/languages/ar/helpers/createBasicWordForms.js +38 -0
  273. package/build/languageProcessing/languages/ar/helpers/createBasicWordForms.js.map +1 -0
  274. package/build/languageProcessing/languages/ar/helpers/getStemmer.js +28 -0
  275. package/build/languageProcessing/languages/ar/helpers/getStemmer.js.map +1 -0
  276. package/build/languageProcessing/languages/ar/helpers/internal/stem.js +635 -0
  277. package/build/languageProcessing/languages/ar/helpers/internal/stem.js.map +1 -0
  278. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js +41 -0
  279. package/build/languageProcessing/languages/ar/helpers/isPassiveSentence.js.map +1 -0
  280. package/build/languageProcessing/languages/ca/Researcher.js +52 -0
  281. package/build/languageProcessing/languages/ca/Researcher.js.map +1 -0
  282. package/build/languageProcessing/languages/ca/config/sentenceLength.js +10 -0
  283. package/build/languageProcessing/languages/ca/config/sentenceLength.js.map +1 -0
  284. package/build/languageProcessing/languages/ca/config/transitionWords.js +13 -0
  285. package/build/languageProcessing/languages/ca/config/transitionWords.js.map +1 -0
  286. package/build/languageProcessing/languages/ca/config/twoPartTransitionWords.js +13 -0
  287. package/build/languageProcessing/languages/ca/config/twoPartTransitionWords.js.map +1 -0
  288. package/build/languageProcessing/languages/ca/helpers/getStemmer.js +20 -0
  289. package/build/languageProcessing/languages/ca/helpers/getStemmer.js.map +1 -0
  290. package/build/languageProcessing/languages/cs/Researcher.js +52 -0
  291. package/build/languageProcessing/languages/cs/Researcher.js.map +1 -0
  292. package/build/languageProcessing/languages/cs/config/firstWordExceptions.js +20 -0
  293. package/build/languageProcessing/languages/cs/config/firstWordExceptions.js.map +1 -0
  294. package/build/languageProcessing/languages/cs/config/functionWords.js +50 -0
  295. package/build/languageProcessing/languages/cs/config/functionWords.js.map +1 -0
  296. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js +10 -0
  297. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  298. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js +14 -0
  299. package/build/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js.map +1 -0
  300. package/build/languageProcessing/languages/cs/config/stopWords.js +12 -0
  301. package/build/languageProcessing/languages/cs/config/stopWords.js.map +1 -0
  302. package/build/languageProcessing/languages/cs/config/transitionWords.js +13 -0
  303. package/build/languageProcessing/languages/cs/config/transitionWords.js.map +1 -0
  304. package/build/languageProcessing/languages/cs/config/twoPartTransitionWords.js +13 -0
  305. package/build/languageProcessing/languages/cs/config/twoPartTransitionWords.js.map +1 -0
  306. package/build/languageProcessing/languages/cs/helpers/getClauses.js +35 -0
  307. package/build/languageProcessing/languages/cs/helpers/getClauses.js.map +1 -0
  308. package/build/languageProcessing/languages/cs/helpers/getStemmer.js +28 -0
  309. package/build/languageProcessing/languages/cs/helpers/getStemmer.js.map +1 -0
  310. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js +24 -0
  311. package/build/languageProcessing/languages/cs/helpers/internal/getParticiples.js.map +1 -0
  312. package/build/languageProcessing/languages/cs/helpers/internal/stem.js +341 -0
  313. package/build/languageProcessing/languages/cs/helpers/internal/stem.js.map +1 -0
  314. package/build/languageProcessing/languages/cs/values/Clause.js +45 -0
  315. package/build/languageProcessing/languages/cs/values/Clause.js.map +1 -0
  316. package/build/languageProcessing/languages/de/Researcher.js +61 -0
  317. package/build/languageProcessing/languages/de/Researcher.js.map +1 -0
  318. package/build/languageProcessing/languages/de/config/firstWordExceptions.js +20 -0
  319. package/build/languageProcessing/languages/de/config/firstWordExceptions.js.map +1 -0
  320. package/build/languageProcessing/languages/de/config/functionWords.js +103 -0
  321. package/build/languageProcessing/languages/de/config/functionWords.js.map +1 -0
  322. package/build/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js +13 -0
  323. package/build/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js.map +1 -0
  324. package/build/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js +29 -0
  325. package/build/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  326. package/build/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js +15 -0
  327. package/build/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js.map +1 -0
  328. package/build/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js +78 -0
  329. package/build/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js.map +1 -0
  330. package/build/languageProcessing/languages/de/config/keyphraseLength.js +17 -0
  331. package/build/languageProcessing/languages/de/config/keyphraseLength.js.map +1 -0
  332. package/build/languageProcessing/languages/de/config/stopWords.js +12 -0
  333. package/build/languageProcessing/languages/de/config/stopWords.js.map +1 -0
  334. package/build/languageProcessing/languages/de/config/syllables.json +460 -0
  335. package/build/languageProcessing/languages/de/config/transitionWords.js +13 -0
  336. package/build/languageProcessing/languages/de/config/transitionWords.js.map +1 -0
  337. package/build/languageProcessing/languages/de/config/twoPartTransitionWords.js +13 -0
  338. package/build/languageProcessing/languages/de/config/twoPartTransitionWords.js.map +1 -0
  339. package/build/languageProcessing/languages/de/config/wordComplexity.js +11 -0
  340. package/build/languageProcessing/languages/de/config/wordComplexity.js.map +1 -0
  341. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +23 -0
  342. package/build/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js.map +1 -0
  343. package/build/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js +47 -0
  344. package/build/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js.map +1 -0
  345. package/build/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js +20 -0
  346. package/build/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js.map +1 -0
  347. package/build/languageProcessing/languages/de/helpers/getClauses.js +34 -0
  348. package/build/languageProcessing/languages/de/helpers/getClauses.js.map +1 -0
  349. package/build/languageProcessing/languages/de/helpers/getStemmer.js +28 -0
  350. package/build/languageProcessing/languages/de/helpers/getStemmer.js.map +1 -0
  351. package/build/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js +38 -0
  352. package/build/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js.map +1 -0
  353. package/build/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js +118 -0
  354. package/build/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js.map +1 -0
  355. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js +113 -0
  356. package/build/languageProcessing/languages/de/helpers/internal/determineStem.js.map +1 -0
  357. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js +39 -0
  358. package/build/languageProcessing/languages/de/helpers/internal/getParticiples.js.map +1 -0
  359. package/build/languageProcessing/languages/de/helpers/internal/stem.js +222 -0
  360. package/build/languageProcessing/languages/de/helpers/internal/stem.js.map +1 -0
  361. package/build/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js +37 -0
  362. package/build/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js.map +1 -0
  363. package/build/languageProcessing/languages/de/values/Clause.js +91 -0
  364. package/build/languageProcessing/languages/de/values/Clause.js.map +1 -0
  365. package/build/languageProcessing/languages/el/Researcher.js +55 -0
  366. package/build/languageProcessing/languages/el/Researcher.js.map +1 -0
  367. package/build/languageProcessing/languages/el/config/firstWordExceptions.js +33 -0
  368. package/build/languageProcessing/languages/el/config/firstWordExceptions.js.map +1 -0
  369. package/build/languageProcessing/languages/el/config/functionWords.js +47 -0
  370. package/build/languageProcessing/languages/el/config/functionWords.js.map +1 -0
  371. package/build/languageProcessing/languages/el/config/internal/auxiliaries.js +12 -0
  372. package/build/languageProcessing/languages/el/config/internal/auxiliaries.js.map +1 -0
  373. package/build/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js +8 -0
  374. package/build/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js.map +1 -0
  375. package/build/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js +22 -0
  376. package/build/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js.map +1 -0
  377. package/build/languageProcessing/languages/el/config/stopWords.js +13 -0
  378. package/build/languageProcessing/languages/el/config/stopWords.js.map +1 -0
  379. package/build/languageProcessing/languages/el/config/transitionWords.js +18 -0
  380. package/build/languageProcessing/languages/el/config/transitionWords.js.map +1 -0
  381. package/build/languageProcessing/languages/el/config/twoPartTransitionWords.js +13 -0
  382. package/build/languageProcessing/languages/el/config/twoPartTransitionWords.js.map +1 -0
  383. package/build/languageProcessing/languages/el/helpers/getClauses.js +34 -0
  384. package/build/languageProcessing/languages/el/helpers/getClauses.js.map +1 -0
  385. package/build/languageProcessing/languages/el/helpers/getStemmer.js +29 -0
  386. package/build/languageProcessing/languages/el/helpers/getStemmer.js.map +1 -0
  387. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js +24 -0
  388. package/build/languageProcessing/languages/el/helpers/internal/getParticiples.js.map +1 -0
  389. package/build/languageProcessing/languages/el/helpers/internal/stem.js +347 -0
  390. package/build/languageProcessing/languages/el/helpers/internal/stem.js.map +1 -0
  391. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js +43 -0
  392. package/build/languageProcessing/languages/el/helpers/isPassiveSentence.js.map +1 -0
  393. package/build/languageProcessing/languages/el/values/Clause.js +46 -0
  394. package/build/languageProcessing/languages/el/values/Clause.js.map +1 -0
  395. package/build/languageProcessing/languages/en/Researcher.js +55 -0
  396. package/build/languageProcessing/languages/en/Researcher.js.map +1 -0
  397. package/build/languageProcessing/languages/en/config/abbreviations.js +16 -0
  398. package/build/languageProcessing/languages/en/config/abbreviations.js.map +1 -0
  399. package/build/languageProcessing/languages/en/config/firstWordExceptions.js +20 -0
  400. package/build/languageProcessing/languages/en/config/firstWordExceptions.js.map +1 -0
  401. package/build/languageProcessing/languages/en/config/functionWords.js +110 -0
  402. package/build/languageProcessing/languages/en/config/functionWords.js.map +1 -0
  403. package/build/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js +15 -0
  404. package/build/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  405. package/build/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js +15 -0
  406. package/build/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js.map +1 -0
  407. package/build/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js +13 -0
  408. package/build/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js.map +1 -0
  409. package/build/languageProcessing/languages/en/config/regularParticiplesRegex.js +12 -0
  410. package/build/languageProcessing/languages/en/config/regularParticiplesRegex.js.map +1 -0
  411. package/build/languageProcessing/languages/en/config/stopWords.js +12 -0
  412. package/build/languageProcessing/languages/en/config/stopWords.js.map +1 -0
  413. package/build/languageProcessing/languages/en/config/syllables.json +86 -0
  414. package/build/languageProcessing/languages/en/config/transitionWords.js +13 -0
  415. package/build/languageProcessing/languages/en/config/transitionWords.js.map +1 -0
  416. package/build/languageProcessing/languages/en/config/twoPartTransitionWords.js +13 -0
  417. package/build/languageProcessing/languages/en/config/twoPartTransitionWords.js.map +1 -0
  418. package/build/languageProcessing/languages/en/config/wordComplexity.js +12 -0
  419. package/build/languageProcessing/languages/en/config/wordComplexity.js.map +1 -0
  420. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +23 -0
  421. package/build/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js.map +1 -0
  422. package/build/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js +49 -0
  423. package/build/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js.map +1 -0
  424. package/build/languageProcessing/languages/en/helpers/getClauses.js +58 -0
  425. package/build/languageProcessing/languages/en/helpers/getClauses.js.map +1 -0
  426. package/build/languageProcessing/languages/en/helpers/getStemmer.js +28 -0
  427. package/build/languageProcessing/languages/en/helpers/getStemmer.js.map +1 -0
  428. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js +161 -0
  429. package/build/languageProcessing/languages/en/helpers/internal/determineStem.js.map +1 -0
  430. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +149 -0
  431. package/build/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js.map +1 -0
  432. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js +33 -0
  433. package/build/languageProcessing/languages/en/helpers/internal/getParticiples.js.map +1 -0
  434. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js +228 -0
  435. package/build/languageProcessing/languages/en/helpers/internal/getVerbStem.js.map +1 -0
  436. package/build/languageProcessing/languages/en/values/Clause.js +68 -0
  437. package/build/languageProcessing/languages/en/values/Clause.js.map +1 -0
  438. package/build/languageProcessing/languages/es/Researcher.js +57 -0
  439. package/build/languageProcessing/languages/es/Researcher.js.map +1 -0
  440. package/build/languageProcessing/languages/es/config/firstWordExceptions.js +20 -0
  441. package/build/languageProcessing/languages/es/config/firstWordExceptions.js.map +1 -0
  442. package/build/languageProcessing/languages/es/config/functionWords.js +111 -0
  443. package/build/languageProcessing/languages/es/config/functionWords.js.map +1 -0
  444. package/build/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js +12 -0
  445. package/build/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  446. package/build/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js +13 -0
  447. package/build/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js.map +1 -0
  448. package/build/languageProcessing/languages/es/config/sentenceLength.js +10 -0
  449. package/build/languageProcessing/languages/es/config/sentenceLength.js.map +1 -0
  450. package/build/languageProcessing/languages/es/config/stopWords.js +12 -0
  451. package/build/languageProcessing/languages/es/config/stopWords.js.map +1 -0
  452. package/build/languageProcessing/languages/es/config/syllables.json +176 -0
  453. package/build/languageProcessing/languages/es/config/transitionWords.js +13 -0
  454. package/build/languageProcessing/languages/es/config/transitionWords.js.map +1 -0
  455. package/build/languageProcessing/languages/es/config/twoPartTransitionWords.js +13 -0
  456. package/build/languageProcessing/languages/es/config/twoPartTransitionWords.js.map +1 -0
  457. package/build/languageProcessing/languages/es/config/wordComplexity.js +11 -0
  458. package/build/languageProcessing/languages/es/config/wordComplexity.js.map +1 -0
  459. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +23 -0
  460. package/build/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js.map +1 -0
  461. package/build/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js +59 -0
  462. package/build/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js.map +1 -0
  463. package/build/languageProcessing/languages/es/helpers/getClauses.js +38 -0
  464. package/build/languageProcessing/languages/es/helpers/getClauses.js.map +1 -0
  465. package/build/languageProcessing/languages/es/helpers/getStemmer.js +28 -0
  466. package/build/languageProcessing/languages/es/helpers/getStemmer.js.map +1 -0
  467. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +40 -0
  468. package/build/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js.map +1 -0
  469. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js +43 -0
  470. package/build/languageProcessing/languages/es/helpers/internal/getParticiples.js.map +1 -0
  471. package/build/languageProcessing/languages/es/helpers/internal/stem.js +574 -0
  472. package/build/languageProcessing/languages/es/helpers/internal/stem.js.map +1 -0
  473. package/build/languageProcessing/languages/es/values/Clause.js +49 -0
  474. package/build/languageProcessing/languages/es/values/Clause.js.map +1 -0
  475. package/build/languageProcessing/languages/fa/Researcher.js +56 -0
  476. package/build/languageProcessing/languages/fa/Researcher.js.map +1 -0
  477. package/build/languageProcessing/languages/fa/config/firstWordExceptions.js +18 -0
  478. package/build/languageProcessing/languages/fa/config/firstWordExceptions.js.map +1 -0
  479. package/build/languageProcessing/languages/fa/config/functionWords.js +41 -0
  480. package/build/languageProcessing/languages/fa/config/functionWords.js.map +1 -0
  481. package/build/languageProcessing/languages/fa/config/internal/participles.js +14 -0
  482. package/build/languageProcessing/languages/fa/config/internal/participles.js.map +1 -0
  483. package/build/languageProcessing/languages/fa/config/sentenceLength.js +10 -0
  484. package/build/languageProcessing/languages/fa/config/sentenceLength.js.map +1 -0
  485. package/build/languageProcessing/languages/fa/config/transitionWords.js +18 -0
  486. package/build/languageProcessing/languages/fa/config/transitionWords.js.map +1 -0
  487. package/build/languageProcessing/languages/fa/config/twoPartTransitionWords.js +13 -0
  488. package/build/languageProcessing/languages/fa/config/twoPartTransitionWords.js.map +1 -0
  489. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js +99 -0
  490. package/build/languageProcessing/languages/fa/helpers/createBasicWordForms.js.map +1 -0
  491. package/build/languageProcessing/languages/fa/helpers/getStemmer.js +22 -0
  492. package/build/languageProcessing/languages/fa/helpers/getStemmer.js.map +1 -0
  493. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js +22 -0
  494. package/build/languageProcessing/languages/fa/helpers/isPassiveSentence.js.map +1 -0
  495. package/build/languageProcessing/languages/fr/Researcher.js +55 -0
  496. package/build/languageProcessing/languages/fr/Researcher.js.map +1 -0
  497. package/build/languageProcessing/languages/fr/config/firstWordExceptions.js +20 -0
  498. package/build/languageProcessing/languages/fr/config/firstWordExceptions.js.map +1 -0
  499. package/build/languageProcessing/languages/fr/config/functionWords.js +144 -0
  500. package/build/languageProcessing/languages/fr/config/functionWords.js.map +1 -0
  501. package/build/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js +22 -0
  502. package/build/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js.map +1 -0
  503. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js +12 -0
  504. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  505. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js +27 -0
  506. package/build/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js.map +1 -0
  507. package/build/languageProcessing/languages/fr/config/stopWords.js +12 -0
  508. package/build/languageProcessing/languages/fr/config/stopWords.js.map +1 -0
  509. package/build/languageProcessing/languages/fr/config/syllables.json +1426 -0
  510. package/build/languageProcessing/languages/fr/config/transitionWords.js +13 -0
  511. package/build/languageProcessing/languages/fr/config/transitionWords.js.map +1 -0
  512. package/build/languageProcessing/languages/fr/config/twoPartTransitionWords.js +13 -0
  513. package/build/languageProcessing/languages/fr/config/twoPartTransitionWords.js.map +1 -0
  514. package/build/languageProcessing/languages/fr/config/wordComplexity.js +11 -0
  515. package/build/languageProcessing/languages/fr/config/wordComplexity.js.map +1 -0
  516. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +23 -0
  517. package/build/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js.map +1 -0
  518. package/build/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js +72 -0
  519. package/build/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js.map +1 -0
  520. package/build/languageProcessing/languages/fr/helpers/getClauses.js +42 -0
  521. package/build/languageProcessing/languages/fr/helpers/getClauses.js.map +1 -0
  522. package/build/languageProcessing/languages/fr/helpers/getStemmer.js +28 -0
  523. package/build/languageProcessing/languages/fr/helpers/getStemmer.js.map +1 -0
  524. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js +71 -0
  525. package/build/languageProcessing/languages/fr/helpers/internal/getParticiples.js.map +1 -0
  526. package/build/languageProcessing/languages/fr/helpers/internal/stem.js +544 -0
  527. package/build/languageProcessing/languages/fr/helpers/internal/stem.js.map +1 -0
  528. package/build/languageProcessing/languages/fr/values/Clause.js +90 -0
  529. package/build/languageProcessing/languages/fr/values/Clause.js.map +1 -0
  530. package/build/languageProcessing/languages/he/Researcher.js +59 -0
  531. package/build/languageProcessing/languages/he/Researcher.js.map +1 -0
  532. package/build/languageProcessing/languages/he/config/firstWordExceptions.js +18 -0
  533. package/build/languageProcessing/languages/he/config/firstWordExceptions.js.map +1 -0
  534. package/build/languageProcessing/languages/he/config/functionWords.js +504 -0
  535. package/build/languageProcessing/languages/he/config/functionWords.js.map +1 -0
  536. package/build/languageProcessing/languages/he/config/internal/regularRootsHufal.js +13 -0
  537. package/build/languageProcessing/languages/he/config/internal/regularRootsHufal.js.map +1 -0
  538. package/build/languageProcessing/languages/he/config/internal/regularRootsNifal.js +13 -0
  539. package/build/languageProcessing/languages/he/config/internal/regularRootsNifal.js.map +1 -0
  540. package/build/languageProcessing/languages/he/config/internal/regularRootsPual.js +13 -0
  541. package/build/languageProcessing/languages/he/config/internal/regularRootsPual.js.map +1 -0
  542. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js +15 -0
  543. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js.map +1 -0
  544. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js +15 -0
  545. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js.map +1 -0
  546. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js +15 -0
  547. package/build/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js.map +1 -0
  548. package/build/languageProcessing/languages/he/config/prefixedFunctionWords.js +9 -0
  549. package/build/languageProcessing/languages/he/config/prefixedFunctionWords.js.map +1 -0
  550. package/build/languageProcessing/languages/he/config/sentenceLength.js +10 -0
  551. package/build/languageProcessing/languages/he/config/sentenceLength.js.map +1 -0
  552. package/build/languageProcessing/languages/he/config/transitionWords.js +13 -0
  553. package/build/languageProcessing/languages/he/config/transitionWords.js.map +1 -0
  554. package/build/languageProcessing/languages/he/config/twoPartTransitionWords.js +13 -0
  555. package/build/languageProcessing/languages/he/config/twoPartTransitionWords.js.map +1 -0
  556. package/build/languageProcessing/languages/he/helpers/createBasicWordForms.js +40 -0
  557. package/build/languageProcessing/languages/he/helpers/createBasicWordForms.js.map +1 -0
  558. package/build/languageProcessing/languages/he/helpers/getStemmer.js +28 -0
  559. package/build/languageProcessing/languages/he/helpers/getStemmer.js.map +1 -0
  560. package/build/languageProcessing/languages/he/helpers/internal/stem.js +59 -0
  561. package/build/languageProcessing/languages/he/helpers/internal/stem.js.map +1 -0
  562. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js +122 -0
  563. package/build/languageProcessing/languages/he/helpers/isPassiveSentence.js.map +1 -0
  564. package/build/languageProcessing/languages/he/helpers/stem.js +59 -0
  565. package/build/languageProcessing/languages/he/helpers/stem.js.map +1 -0
  566. package/build/languageProcessing/languages/hu/Researcher.js +57 -0
  567. package/build/languageProcessing/languages/hu/Researcher.js.map +1 -0
  568. package/build/languageProcessing/languages/hu/config/firstWordExceptions.js +32 -0
  569. package/build/languageProcessing/languages/hu/config/firstWordExceptions.js.map +1 -0
  570. package/build/languageProcessing/languages/hu/config/functionWords.js +52 -0
  571. package/build/languageProcessing/languages/hu/config/functionWords.js.map +1 -0
  572. package/build/languageProcessing/languages/hu/config/internal/auxiliaries.js +20 -0
  573. package/build/languageProcessing/languages/hu/config/internal/auxiliaries.js.map +1 -0
  574. package/build/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js +12 -0
  575. package/build/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js.map +1 -0
  576. package/build/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js +25 -0
  577. package/build/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js.map +1 -0
  578. package/build/languageProcessing/languages/hu/config/internal/odikVerbs.js +25 -0
  579. package/build/languageProcessing/languages/hu/config/internal/odikVerbs.js.map +1 -0
  580. package/build/languageProcessing/languages/hu/config/internal/participles.js +25 -0
  581. package/build/languageProcessing/languages/hu/config/internal/participles.js.map +1 -0
  582. package/build/languageProcessing/languages/hu/config/stopWords.js +29 -0
  583. package/build/languageProcessing/languages/hu/config/stopWords.js.map +1 -0
  584. package/build/languageProcessing/languages/hu/config/transitionWords.js +13 -0
  585. package/build/languageProcessing/languages/hu/config/transitionWords.js.map +1 -0
  586. package/build/languageProcessing/languages/hu/config/twoPartTransitionWords.js +13 -0
  587. package/build/languageProcessing/languages/hu/config/twoPartTransitionWords.js.map +1 -0
  588. package/build/languageProcessing/languages/hu/helpers/getClauses.js +34 -0
  589. package/build/languageProcessing/languages/hu/helpers/getClauses.js.map +1 -0
  590. package/build/languageProcessing/languages/hu/helpers/getStemmer.js +28 -0
  591. package/build/languageProcessing/languages/hu/helpers/getStemmer.js.map +1 -0
  592. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js +25 -0
  593. package/build/languageProcessing/languages/hu/helpers/internal/getParticiples.js.map +1 -0
  594. package/build/languageProcessing/languages/hu/helpers/internal/stem.js +390 -0
  595. package/build/languageProcessing/languages/hu/helpers/internal/stem.js.map +1 -0
  596. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js +53 -0
  597. package/build/languageProcessing/languages/hu/helpers/isPassiveSentence.js.map +1 -0
  598. package/build/languageProcessing/languages/hu/values/Clause.js +47 -0
  599. package/build/languageProcessing/languages/hu/values/Clause.js.map +1 -0
  600. package/build/languageProcessing/languages/id/Researcher.js +55 -0
  601. package/build/languageProcessing/languages/id/Researcher.js.map +1 -0
  602. package/build/languageProcessing/languages/id/config/firstWordExceptions.js +18 -0
  603. package/build/languageProcessing/languages/id/config/firstWordExceptions.js.map +1 -0
  604. package/build/languageProcessing/languages/id/config/functionWords.js +109 -0
  605. package/build/languageProcessing/languages/id/config/functionWords.js.map +1 -0
  606. package/build/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js +13 -0
  607. package/build/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js.map +1 -0
  608. package/build/languageProcessing/languages/id/config/transitionWords.js +30 -0
  609. package/build/languageProcessing/languages/id/config/transitionWords.js.map +1 -0
  610. package/build/languageProcessing/languages/id/config/twoPartTransitionWords.js +14 -0
  611. package/build/languageProcessing/languages/id/config/twoPartTransitionWords.js.map +1 -0
  612. package/build/languageProcessing/languages/id/helpers/getStemmer.js +28 -0
  613. package/build/languageProcessing/languages/id/helpers/getStemmer.js.map +1 -0
  614. package/build/languageProcessing/languages/id/helpers/internal/stem.js +394 -0
  615. package/build/languageProcessing/languages/id/helpers/internal/stem.js.map +1 -0
  616. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js +86 -0
  617. package/build/languageProcessing/languages/id/helpers/internal/stemHelpers.js.map +1 -0
  618. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js +47 -0
  619. package/build/languageProcessing/languages/id/helpers/isPassiveSentence.js.map +1 -0
  620. package/build/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js +53 -0
  621. package/build/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js.map +1 -0
  622. package/build/languageProcessing/languages/it/Researcher.js +57 -0
  623. package/build/languageProcessing/languages/it/Researcher.js.map +1 -0
  624. package/build/languageProcessing/languages/it/config/firstWordExceptions.js +20 -0
  625. package/build/languageProcessing/languages/it/config/firstWordExceptions.js.map +1 -0
  626. package/build/languageProcessing/languages/it/config/functionWords.js +141 -0
  627. package/build/languageProcessing/languages/it/config/functionWords.js.map +1 -0
  628. package/build/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js +12 -0
  629. package/build/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  630. package/build/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js +13 -0
  631. package/build/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js.map +1 -0
  632. package/build/languageProcessing/languages/it/config/sentenceLength.js +10 -0
  633. package/build/languageProcessing/languages/it/config/sentenceLength.js.map +1 -0
  634. package/build/languageProcessing/languages/it/config/stopWords.js +12 -0
  635. package/build/languageProcessing/languages/it/config/stopWords.js.map +1 -0
  636. package/build/languageProcessing/languages/it/config/syllables.json +573 -0
  637. package/build/languageProcessing/languages/it/config/transitionWords.js +13 -0
  638. package/build/languageProcessing/languages/it/config/transitionWords.js.map +1 -0
  639. package/build/languageProcessing/languages/it/config/twoPartTransitionWords.js +12 -0
  640. package/build/languageProcessing/languages/it/config/twoPartTransitionWords.js.map +1 -0
  641. package/build/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js +23 -0
  642. package/build/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js.map +1 -0
  643. package/build/languageProcessing/languages/it/helpers/getClauses.js +40 -0
  644. package/build/languageProcessing/languages/it/helpers/getClauses.js.map +1 -0
  645. package/build/languageProcessing/languages/it/helpers/getStemmer.js +28 -0
  646. package/build/languageProcessing/languages/it/helpers/getStemmer.js.map +1 -0
  647. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js +42 -0
  648. package/build/languageProcessing/languages/it/helpers/internal/getParticiples.js.map +1 -0
  649. package/build/languageProcessing/languages/it/helpers/internal/stem.js +408 -0
  650. package/build/languageProcessing/languages/it/helpers/internal/stem.js.map +1 -0
  651. package/build/languageProcessing/languages/it/values/Clause.js +51 -0
  652. package/build/languageProcessing/languages/it/values/Clause.js.map +1 -0
  653. package/build/languageProcessing/languages/ja/Researcher.js +94 -0
  654. package/build/languageProcessing/languages/ja/Researcher.js.map +1 -0
  655. package/build/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js +11 -0
  656. package/build/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js.map +1 -0
  657. package/build/languageProcessing/languages/ja/config/firstWordExceptions.js +14 -0
  658. package/build/languageProcessing/languages/ja/config/firstWordExceptions.js.map +1 -0
  659. package/build/languageProcessing/languages/ja/config/functionWords.js +8 -0
  660. package/build/languageProcessing/languages/ja/config/functionWords.js.map +1 -0
  661. package/build/languageProcessing/languages/ja/config/keyphraseLength.js +23 -0
  662. package/build/languageProcessing/languages/ja/config/keyphraseLength.js.map +1 -0
  663. package/build/languageProcessing/languages/ja/config/metaDescriptionLength.js +11 -0
  664. package/build/languageProcessing/languages/ja/config/metaDescriptionLength.js.map +1 -0
  665. package/build/languageProcessing/languages/ja/config/paragraphLength.js +17 -0
  666. package/build/languageProcessing/languages/ja/config/paragraphLength.js.map +1 -0
  667. package/build/languageProcessing/languages/ja/config/sentenceLength.js +11 -0
  668. package/build/languageProcessing/languages/ja/config/sentenceLength.js.map +1 -0
  669. package/build/languageProcessing/languages/ja/config/subheadingsTooLong.js +25 -0
  670. package/build/languageProcessing/languages/ja/config/subheadingsTooLong.js.map +1 -0
  671. package/build/languageProcessing/languages/ja/config/textLength.js +54 -0
  672. package/build/languageProcessing/languages/ja/config/textLength.js.map +1 -0
  673. package/build/languageProcessing/languages/ja/config/topicLength.js +12 -0
  674. package/build/languageProcessing/languages/ja/config/topicLength.js.map +1 -0
  675. package/build/languageProcessing/languages/ja/config/transitionWords.js +9 -0
  676. package/build/languageProcessing/languages/ja/config/transitionWords.js.map +1 -0
  677. package/build/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js +102 -0
  678. package/build/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js.map +1 -0
  679. package/build/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js +25 -0
  680. package/build/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js.map +1 -0
  681. package/build/languageProcessing/languages/ja/customResearches/getWordForms.js +57 -0
  682. package/build/languageProcessing/languages/ja/customResearches/getWordForms.js.map +1 -0
  683. package/build/languageProcessing/languages/ja/customResearches/textLength.js +31 -0
  684. package/build/languageProcessing/languages/ja/customResearches/textLength.js.map +1 -0
  685. package/build/languageProcessing/languages/ja/helpers/countCharacters.js +27 -0
  686. package/build/languageProcessing/languages/ja/helpers/countCharacters.js.map +1 -0
  687. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js +28 -0
  688. package/build/languageProcessing/languages/ja/helpers/customGetStemmer.js.map +1 -0
  689. package/build/languageProcessing/languages/ja/helpers/getContentWords.js +27 -0
  690. package/build/languageProcessing/languages/ja/helpers/getContentWords.js.map +1 -0
  691. package/build/languageProcessing/languages/ja/helpers/getWords.js +38 -0
  692. package/build/languageProcessing/languages/ja/helpers/getWords.js.map +1 -0
  693. package/build/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js +99 -0
  694. package/build/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js.map +1 -0
  695. package/build/languageProcessing/languages/ja/helpers/internal/createWordForms.js +70 -0
  696. package/build/languageProcessing/languages/ja/helpers/internal/createWordForms.js.map +1 -0
  697. package/build/languageProcessing/languages/ja/helpers/internal/determineStem.js +23 -0
  698. package/build/languageProcessing/languages/ja/helpers/internal/determineStem.js.map +1 -0
  699. package/build/languageProcessing/languages/ja/helpers/matchTextWithWord.js +58 -0
  700. package/build/languageProcessing/languages/ja/helpers/matchTextWithWord.js.map +1 -0
  701. package/build/languageProcessing/languages/ja/helpers/matchTransitionWords.js +29 -0
  702. package/build/languageProcessing/languages/ja/helpers/matchTransitionWords.js.map +1 -0
  703. package/build/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js +37 -0
  704. package/build/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js.map +1 -0
  705. package/build/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js +27 -0
  706. package/build/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js.map +1 -0
  707. package/build/languageProcessing/languages/ja/helpers/wordsCharacterCount.js +19 -0
  708. package/build/languageProcessing/languages/ja/helpers/wordsCharacterCount.js.map +1 -0
  709. package/build/languageProcessing/languages/nb/Researcher.js +54 -0
  710. package/build/languageProcessing/languages/nb/Researcher.js.map +1 -0
  711. package/build/languageProcessing/languages/nb/config/firstWordExceptions.js +18 -0
  712. package/build/languageProcessing/languages/nb/config/firstWordExceptions.js.map +1 -0
  713. package/build/languageProcessing/languages/nb/config/functionWords.js +54 -0
  714. package/build/languageProcessing/languages/nb/config/functionWords.js.map +1 -0
  715. package/build/languageProcessing/languages/nb/config/internal/participles.js +12 -0
  716. package/build/languageProcessing/languages/nb/config/internal/participles.js.map +1 -0
  717. package/build/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js +12 -0
  718. package/build/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  719. package/build/languageProcessing/languages/nb/config/stopWords.js +13 -0
  720. package/build/languageProcessing/languages/nb/config/stopWords.js.map +1 -0
  721. package/build/languageProcessing/languages/nb/config/transitionWords.js +13 -0
  722. package/build/languageProcessing/languages/nb/config/transitionWords.js.map +1 -0
  723. package/build/languageProcessing/languages/nb/config/twoPartTransitionWords.js +13 -0
  724. package/build/languageProcessing/languages/nb/config/twoPartTransitionWords.js.map +1 -0
  725. package/build/languageProcessing/languages/nb/helpers/getClauses.js +37 -0
  726. package/build/languageProcessing/languages/nb/helpers/getClauses.js.map +1 -0
  727. package/build/languageProcessing/languages/nb/helpers/getStemmer.js +28 -0
  728. package/build/languageProcessing/languages/nb/helpers/getStemmer.js.map +1 -0
  729. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js +31 -0
  730. package/build/languageProcessing/languages/nb/helpers/internal/getParticiples.js.map +1 -0
  731. package/build/languageProcessing/languages/nb/helpers/internal/stem.js +135 -0
  732. package/build/languageProcessing/languages/nb/helpers/internal/stem.js.map +1 -0
  733. package/build/languageProcessing/languages/nb/values/Clause.js +49 -0
  734. package/build/languageProcessing/languages/nb/values/Clause.js.map +1 -0
  735. package/build/languageProcessing/languages/nl/Researcher.js +57 -0
  736. package/build/languageProcessing/languages/nl/Researcher.js.map +1 -0
  737. package/build/languageProcessing/languages/nl/config/firstWordExceptions.js +20 -0
  738. package/build/languageProcessing/languages/nl/config/firstWordExceptions.js.map +1 -0
  739. package/build/languageProcessing/languages/nl/config/functionWords.js +102 -0
  740. package/build/languageProcessing/languages/nl/config/functionWords.js.map +1 -0
  741. package/build/languageProcessing/languages/nl/config/internal/nonParticiples.js +12 -0
  742. package/build/languageProcessing/languages/nl/config/internal/nonParticiples.js.map +1 -0
  743. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js +12 -0
  744. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  745. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js +13 -0
  746. package/build/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js.map +1 -0
  747. package/build/languageProcessing/languages/nl/config/keyphraseLength.js +17 -0
  748. package/build/languageProcessing/languages/nl/config/keyphraseLength.js.map +1 -0
  749. package/build/languageProcessing/languages/nl/config/stopWords.js +12 -0
  750. package/build/languageProcessing/languages/nl/config/stopWords.js.map +1 -0
  751. package/build/languageProcessing/languages/nl/config/syllables.json +343 -0
  752. package/build/languageProcessing/languages/nl/config/transitionWords.js +11 -0
  753. package/build/languageProcessing/languages/nl/config/transitionWords.js.map +1 -0
  754. package/build/languageProcessing/languages/nl/config/twoPartTransitionWords.js +12 -0
  755. package/build/languageProcessing/languages/nl/config/twoPartTransitionWords.js.map +1 -0
  756. package/build/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js +23 -0
  757. package/build/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js.map +1 -0
  758. package/build/languageProcessing/languages/nl/helpers/getClauses.js +34 -0
  759. package/build/languageProcessing/languages/nl/helpers/getClauses.js.map +1 -0
  760. package/build/languageProcessing/languages/nl/helpers/getStemmer.js +28 -0
  761. package/build/languageProcessing/languages/nl/helpers/getStemmer.js.map +1 -0
  762. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +124 -0
  763. package/build/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js.map +1 -0
  764. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +260 -0
  765. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js.map +1 -0
  766. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js +157 -0
  767. package/build/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js.map +1 -0
  768. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js +120 -0
  769. package/build/languageProcessing/languages/nl/helpers/internal/determineStem.js.map +1 -0
  770. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js +27 -0
  771. package/build/languageProcessing/languages/nl/helpers/internal/getParticiples.js.map +1 -0
  772. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +152 -0
  773. package/build/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js.map +1 -0
  774. package/build/languageProcessing/languages/nl/helpers/internal/stem.js +131 -0
  775. package/build/languageProcessing/languages/nl/helpers/internal/stem.js.map +1 -0
  776. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +94 -0
  777. package/build/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js.map +1 -0
  778. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +59 -0
  779. package/build/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js.map +1 -0
  780. package/build/languageProcessing/languages/nl/values/Clause.js +63 -0
  781. package/build/languageProcessing/languages/nl/values/Clause.js.map +1 -0
  782. package/build/languageProcessing/languages/pl/Researcher.js +56 -0
  783. package/build/languageProcessing/languages/pl/Researcher.js.map +1 -0
  784. package/build/languageProcessing/languages/pl/config/firstWordExceptions.js +16 -0
  785. package/build/languageProcessing/languages/pl/config/firstWordExceptions.js.map +1 -0
  786. package/build/languageProcessing/languages/pl/config/functionWords.js +78 -0
  787. package/build/languageProcessing/languages/pl/config/functionWords.js.map +1 -0
  788. package/build/languageProcessing/languages/pl/config/internal/auxiliaries.js +12 -0
  789. package/build/languageProcessing/languages/pl/config/internal/auxiliaries.js.map +1 -0
  790. package/build/languageProcessing/languages/pl/config/internal/participles.js +13 -0
  791. package/build/languageProcessing/languages/pl/config/internal/participles.js.map +1 -0
  792. package/build/languageProcessing/languages/pl/config/sentenceLength.js +17 -0
  793. package/build/languageProcessing/languages/pl/config/sentenceLength.js.map +1 -0
  794. package/build/languageProcessing/languages/pl/config/stopWords.js +12 -0
  795. package/build/languageProcessing/languages/pl/config/stopWords.js.map +1 -0
  796. package/build/languageProcessing/languages/pl/config/transitionWords.js +13 -0
  797. package/build/languageProcessing/languages/pl/config/transitionWords.js.map +1 -0
  798. package/build/languageProcessing/languages/pl/config/twoPartTransitionWords.js +13 -0
  799. package/build/languageProcessing/languages/pl/config/twoPartTransitionWords.js.map +1 -0
  800. package/build/languageProcessing/languages/pl/helpers/getClauses.js +34 -0
  801. package/build/languageProcessing/languages/pl/helpers/getClauses.js.map +1 -0
  802. package/build/languageProcessing/languages/pl/helpers/getStemmer.js +28 -0
  803. package/build/languageProcessing/languages/pl/helpers/getStemmer.js.map +1 -0
  804. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js +25 -0
  805. package/build/languageProcessing/languages/pl/helpers/internal/getParticiples.js.map +1 -0
  806. package/build/languageProcessing/languages/pl/helpers/internal/stem.js +158 -0
  807. package/build/languageProcessing/languages/pl/helpers/internal/stem.js.map +1 -0
  808. package/build/languageProcessing/languages/pl/values/Clause.js +51 -0
  809. package/build/languageProcessing/languages/pl/values/Clause.js.map +1 -0
  810. package/build/languageProcessing/languages/pt/Researcher.js +57 -0
  811. package/build/languageProcessing/languages/pt/Researcher.js.map +1 -0
  812. package/build/languageProcessing/languages/pt/config/firstWordExceptions.js +20 -0
  813. package/build/languageProcessing/languages/pt/config/firstWordExceptions.js.map +1 -0
  814. package/build/languageProcessing/languages/pt/config/functionWords.js +98 -0
  815. package/build/languageProcessing/languages/pt/config/functionWords.js.map +1 -0
  816. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js +12 -0
  817. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  818. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js +13 -0
  819. package/build/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js.map +1 -0
  820. package/build/languageProcessing/languages/pt/config/sentenceLength.js +10 -0
  821. package/build/languageProcessing/languages/pt/config/sentenceLength.js.map +1 -0
  822. package/build/languageProcessing/languages/pt/config/stopWords.js +12 -0
  823. package/build/languageProcessing/languages/pt/config/stopWords.js.map +1 -0
  824. package/build/languageProcessing/languages/pt/config/syllables.json +38 -0
  825. package/build/languageProcessing/languages/pt/config/transitionWords.js +11 -0
  826. package/build/languageProcessing/languages/pt/config/transitionWords.js.map +1 -0
  827. package/build/languageProcessing/languages/pt/config/twoPartTransitionWords.js +12 -0
  828. package/build/languageProcessing/languages/pt/config/twoPartTransitionWords.js.map +1 -0
  829. package/build/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js +23 -0
  830. package/build/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js.map +1 -0
  831. package/build/languageProcessing/languages/pt/helpers/getClauses.js +38 -0
  832. package/build/languageProcessing/languages/pt/helpers/getClauses.js.map +1 -0
  833. package/build/languageProcessing/languages/pt/helpers/getStemmer.js +28 -0
  834. package/build/languageProcessing/languages/pt/helpers/getStemmer.js.map +1 -0
  835. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js +43 -0
  836. package/build/languageProcessing/languages/pt/helpers/internal/getParticiples.js.map +1 -0
  837. package/build/languageProcessing/languages/pt/helpers/internal/stem.js +283 -0
  838. package/build/languageProcessing/languages/pt/helpers/internal/stem.js.map +1 -0
  839. package/build/languageProcessing/languages/pt/values/Clause.js +50 -0
  840. package/build/languageProcessing/languages/pt/values/Clause.js.map +1 -0
  841. package/build/languageProcessing/languages/ru/Researcher.js +57 -0
  842. package/build/languageProcessing/languages/ru/Researcher.js.map +1 -0
  843. package/build/languageProcessing/languages/ru/config/firstWordExceptions.js +16 -0
  844. package/build/languageProcessing/languages/ru/config/firstWordExceptions.js.map +1 -0
  845. package/build/languageProcessing/languages/ru/config/fleschReadingEaseScores.js +27 -0
  846. package/build/languageProcessing/languages/ru/config/fleschReadingEaseScores.js.map +1 -0
  847. package/build/languageProcessing/languages/ru/config/functionWords.js +91 -0
  848. package/build/languageProcessing/languages/ru/config/functionWords.js.map +1 -0
  849. package/build/languageProcessing/languages/ru/config/internal/participlesShortenedList.js +27 -0
  850. package/build/languageProcessing/languages/ru/config/internal/participlesShortenedList.js.map +1 -0
  851. package/build/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js +24 -0
  852. package/build/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js.map +1 -0
  853. package/build/languageProcessing/languages/ru/config/sentenceLength.js +10 -0
  854. package/build/languageProcessing/languages/ru/config/sentenceLength.js.map +1 -0
  855. package/build/languageProcessing/languages/ru/config/syllables.json +19 -0
  856. package/build/languageProcessing/languages/ru/config/transitionWords.js +13 -0
  857. package/build/languageProcessing/languages/ru/config/transitionWords.js.map +1 -0
  858. package/build/languageProcessing/languages/ru/config/twoPartTransitionWords.js +13 -0
  859. package/build/languageProcessing/languages/ru/config/twoPartTransitionWords.js.map +1 -0
  860. package/build/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js +23 -0
  861. package/build/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js.map +1 -0
  862. package/build/languageProcessing/languages/ru/helpers/getStemmer.js +28 -0
  863. package/build/languageProcessing/languages/ru/helpers/getStemmer.js.map +1 -0
  864. package/build/languageProcessing/languages/ru/helpers/internal/stem.js +271 -0
  865. package/build/languageProcessing/languages/ru/helpers/internal/stem.js.map +1 -0
  866. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js +22 -0
  867. package/build/languageProcessing/languages/ru/helpers/isPassiveSentence.js.map +1 -0
  868. package/build/languageProcessing/languages/sk/Researcher.js +55 -0
  869. package/build/languageProcessing/languages/sk/Researcher.js.map +1 -0
  870. package/build/languageProcessing/languages/sk/config/firstWordExceptions.js +18 -0
  871. package/build/languageProcessing/languages/sk/config/firstWordExceptions.js.map +1 -0
  872. package/build/languageProcessing/languages/sk/config/functionWords.js +18 -0
  873. package/build/languageProcessing/languages/sk/config/functionWords.js.map +1 -0
  874. package/build/languageProcessing/languages/sk/config/internal/nonPassives.js +14 -0
  875. package/build/languageProcessing/languages/sk/config/internal/nonPassives.js.map +1 -0
  876. package/build/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js +10 -0
  877. package/build/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js.map +1 -0
  878. package/build/languageProcessing/languages/sk/config/stopWords.js +13 -0
  879. package/build/languageProcessing/languages/sk/config/stopWords.js.map +1 -0
  880. package/build/languageProcessing/languages/sk/config/transitionWords.js +13 -0
  881. package/build/languageProcessing/languages/sk/config/transitionWords.js.map +1 -0
  882. package/build/languageProcessing/languages/sk/config/twoPartTransitionWords.js +13 -0
  883. package/build/languageProcessing/languages/sk/config/twoPartTransitionWords.js.map +1 -0
  884. package/build/languageProcessing/languages/sk/helpers/getClauses.js +35 -0
  885. package/build/languageProcessing/languages/sk/helpers/getClauses.js.map +1 -0
  886. package/build/languageProcessing/languages/sk/helpers/getStemmer.js +28 -0
  887. package/build/languageProcessing/languages/sk/helpers/getStemmer.js.map +1 -0
  888. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js +24 -0
  889. package/build/languageProcessing/languages/sk/helpers/internal/getParticiples.js.map +1 -0
  890. package/build/languageProcessing/languages/sk/helpers/internal/stem.js +322 -0
  891. package/build/languageProcessing/languages/sk/helpers/internal/stem.js.map +1 -0
  892. package/build/languageProcessing/languages/sk/values/Clause.js +47 -0
  893. package/build/languageProcessing/languages/sk/values/Clause.js.map +1 -0
  894. package/build/languageProcessing/languages/sv/Researcher.js +54 -0
  895. package/build/languageProcessing/languages/sv/Researcher.js.map +1 -0
  896. package/build/languageProcessing/languages/sv/config/firstWordExceptions.js +21 -0
  897. package/build/languageProcessing/languages/sv/config/firstWordExceptions.js.map +1 -0
  898. package/build/languageProcessing/languages/sv/config/functionWords.js +74 -0
  899. package/build/languageProcessing/languages/sv/config/functionWords.js.map +1 -0
  900. package/build/languageProcessing/languages/sv/config/internal/passiveVerbs.js +12 -0
  901. package/build/languageProcessing/languages/sv/config/internal/passiveVerbs.js.map +1 -0
  902. package/build/languageProcessing/languages/sv/config/keyphraseLength.js +17 -0
  903. package/build/languageProcessing/languages/sv/config/keyphraseLength.js.map +1 -0
  904. package/build/languageProcessing/languages/sv/config/transitionWords.js +13 -0
  905. package/build/languageProcessing/languages/sv/config/transitionWords.js.map +1 -0
  906. package/build/languageProcessing/languages/sv/config/twoPartTransitionWords.js +13 -0
  907. package/build/languageProcessing/languages/sv/config/twoPartTransitionWords.js.map +1 -0
  908. package/build/languageProcessing/languages/sv/helpers/getStemmer.js +28 -0
  909. package/build/languageProcessing/languages/sv/helpers/getStemmer.js.map +1 -0
  910. package/build/languageProcessing/languages/sv/helpers/internal/stem.js +159 -0
  911. package/build/languageProcessing/languages/sv/helpers/internal/stem.js.map +1 -0
  912. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js +22 -0
  913. package/build/languageProcessing/languages/sv/helpers/isPassiveSentence.js.map +1 -0
  914. package/build/languageProcessing/languages/tr/Researcher.js +52 -0
  915. package/build/languageProcessing/languages/tr/Researcher.js.map +1 -0
  916. package/build/languageProcessing/languages/tr/config/firstWordExceptions.js +18 -0
  917. package/build/languageProcessing/languages/tr/config/firstWordExceptions.js.map +1 -0
  918. package/build/languageProcessing/languages/tr/config/functionWords.js +51 -0
  919. package/build/languageProcessing/languages/tr/config/functionWords.js.map +1 -0
  920. package/build/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js +13 -0
  921. package/build/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js.map +1 -0
  922. package/build/languageProcessing/languages/tr/config/internal/passiveEndings.js +13 -0
  923. package/build/languageProcessing/languages/tr/config/internal/passiveEndings.js.map +1 -0
  924. package/build/languageProcessing/languages/tr/config/sentenceLength.js +14 -0
  925. package/build/languageProcessing/languages/tr/config/sentenceLength.js.map +1 -0
  926. package/build/languageProcessing/languages/tr/config/transitionWords.js +13 -0
  927. package/build/languageProcessing/languages/tr/config/transitionWords.js.map +1 -0
  928. package/build/languageProcessing/languages/tr/config/twoPartTransitionWords.js +13 -0
  929. package/build/languageProcessing/languages/tr/config/twoPartTransitionWords.js.map +1 -0
  930. package/build/languageProcessing/languages/tr/helpers/getStemmer.js +28 -0
  931. package/build/languageProcessing/languages/tr/helpers/getStemmer.js.map +1 -0
  932. package/build/languageProcessing/languages/tr/helpers/internal/stem.js +25 -0
  933. package/build/languageProcessing/languages/tr/helpers/internal/stem.js.map +1 -0
  934. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js +46 -0
  935. package/build/languageProcessing/languages/tr/helpers/isPassiveSentence.js.map +1 -0
  936. package/build/languageProcessing/researches/altTagCount.js +72 -0
  937. package/build/languageProcessing/researches/altTagCount.js.map +1 -0
  938. package/build/languageProcessing/researches/countSentencesFromText.js +26 -0
  939. package/build/languageProcessing/researches/countSentencesFromText.js.map +1 -0
  940. package/build/languageProcessing/researches/findKeyphraseInSEOTitle.js +257 -0
  941. package/build/languageProcessing/researches/findKeyphraseInSEOTitle.js.map +1 -0
  942. package/build/languageProcessing/researches/findKeywordInFirstParagraph.js +80 -0
  943. package/build/languageProcessing/researches/findKeywordInFirstParagraph.js.map +1 -0
  944. package/build/languageProcessing/researches/findTransitionWords.js +119 -0
  945. package/build/languageProcessing/researches/findTransitionWords.js.map +1 -0
  946. package/build/languageProcessing/researches/functionWordsInKeyphrase.js +48 -0
  947. package/build/languageProcessing/researches/functionWordsInKeyphrase.js.map +1 -0
  948. package/build/languageProcessing/researches/getAnchorsWithKeyphrase.js +222 -0
  949. package/build/languageProcessing/researches/getAnchorsWithKeyphrase.js.map +1 -0
  950. package/build/languageProcessing/researches/getFleschReadingScore.js +152 -0
  951. package/build/languageProcessing/researches/getFleschReadingScore.js.map +1 -0
  952. package/build/languageProcessing/researches/getKeywordDensity.js +49 -0
  953. package/build/languageProcessing/researches/getKeywordDensity.js.map +1 -0
  954. package/build/languageProcessing/researches/getLinkStatistics.js +56 -0
  955. package/build/languageProcessing/researches/getLinkStatistics.js.map +1 -0
  956. package/build/languageProcessing/researches/getLinks.js +23 -0
  957. package/build/languageProcessing/researches/getLinks.js.map +1 -0
  958. package/build/languageProcessing/researches/getLongCenterAlignedTexts.js +42 -0
  959. package/build/languageProcessing/researches/getLongCenterAlignedTexts.js.map +1 -0
  960. package/build/languageProcessing/researches/getParagraphLength.js +49 -0
  961. package/build/languageProcessing/researches/getParagraphLength.js.map +1 -0
  962. package/build/languageProcessing/researches/getParagraphs.js +23 -0
  963. package/build/languageProcessing/researches/getParagraphs.js.map +1 -0
  964. package/build/languageProcessing/researches/getPassiveVoiceResult.js +127 -0
  965. package/build/languageProcessing/researches/getPassiveVoiceResult.js.map +1 -0
  966. package/build/languageProcessing/researches/getProminentWordsForInsights.js +45 -0
  967. package/build/languageProcessing/researches/getProminentWordsForInsights.js.map +1 -0
  968. package/build/languageProcessing/researches/getProminentWordsForInternalLinking.js +103 -0
  969. package/build/languageProcessing/researches/getProminentWordsForInternalLinking.js.map +1 -0
  970. package/build/languageProcessing/researches/getSentenceBeginnings.js +122 -0
  971. package/build/languageProcessing/researches/getSentenceBeginnings.js.map +1 -0
  972. package/build/languageProcessing/researches/getSubheadingTextLengths.js +60 -0
  973. package/build/languageProcessing/researches/getSubheadingTextLengths.js.map +1 -0
  974. package/build/languageProcessing/researches/getWordForms.js +183 -0
  975. package/build/languageProcessing/researches/getWordForms.js.map +1 -0
  976. package/build/languageProcessing/researches/h1s.js +17 -0
  977. package/build/languageProcessing/researches/h1s.js.map +1 -0
  978. package/build/languageProcessing/researches/imageCount.js +22 -0
  979. package/build/languageProcessing/researches/imageCount.js.map +1 -0
  980. package/build/languageProcessing/researches/index.js +28 -0
  981. package/build/languageProcessing/researches/index.js.map +1 -0
  982. package/build/languageProcessing/researches/keyphraseDistribution.js +233 -0
  983. package/build/languageProcessing/researches/keyphraseDistribution.js.map +1 -0
  984. package/build/languageProcessing/researches/keyphraseLength.js +23 -0
  985. package/build/languageProcessing/researches/keyphraseLength.js.map +1 -0
  986. package/build/languageProcessing/researches/keywordCount.js +135 -0
  987. package/build/languageProcessing/researches/keywordCount.js.map +1 -0
  988. package/build/languageProcessing/researches/keywordCountInUrl.js +58 -0
  989. package/build/languageProcessing/researches/keywordCountInUrl.js.map +1 -0
  990. package/build/languageProcessing/researches/matchKeywordInSubheadings.js +68 -0
  991. package/build/languageProcessing/researches/matchKeywordInSubheadings.js.map +1 -0
  992. package/build/languageProcessing/researches/metaDescriptionKeyword.js +78 -0
  993. package/build/languageProcessing/researches/metaDescriptionKeyword.js.map +1 -0
  994. package/build/languageProcessing/researches/metaDescriptionLength.js +19 -0
  995. package/build/languageProcessing/researches/metaDescriptionLength.js.map +1 -0
  996. package/build/languageProcessing/researches/pageTitleWidth.js +18 -0
  997. package/build/languageProcessing/researches/pageTitleWidth.js.map +1 -0
  998. package/build/languageProcessing/researches/readingTime.js +84 -0
  999. package/build/languageProcessing/researches/readingTime.js.map +1 -0
  1000. package/build/languageProcessing/researches/sentences.js +26 -0
  1001. package/build/languageProcessing/researches/sentences.js.map +1 -0
  1002. package/build/languageProcessing/researches/videoCount.js +39 -0
  1003. package/build/languageProcessing/researches/videoCount.js.map +1 -0
  1004. package/build/languageProcessing/researches/wordComplexity.js +128 -0
  1005. package/build/languageProcessing/researches/wordComplexity.js.map +1 -0
  1006. package/build/languageProcessing/researches/wordCountInText.js +36 -0
  1007. package/build/languageProcessing/researches/wordCountInText.js.map +1 -0
  1008. package/build/languageProcessing/values/Clause.js +113 -0
  1009. package/build/languageProcessing/values/Clause.js.map +1 -0
  1010. package/build/languageProcessing/values/ProminentWord.js +101 -0
  1011. package/build/languageProcessing/values/ProminentWord.js.map +1 -0
  1012. package/build/languageProcessing/values/Sentence.js +116 -0
  1013. package/build/languageProcessing/values/Sentence.js.map +1 -0
  1014. package/build/languageProcessing/values/index.js +28 -0
  1015. package/build/languageProcessing/values/index.js.map +1 -0
  1016. package/build/markers/addMark.js +16 -0
  1017. package/build/markers/addMark.js.map +1 -0
  1018. package/build/markers/addMarkSingleWord.js +37 -0
  1019. package/build/markers/addMarkSingleWord.js.map +1 -0
  1020. package/build/markers/index.js +21 -0
  1021. package/build/markers/index.js.map +1 -0
  1022. package/build/markers/removeDuplicateMarks.js +31 -0
  1023. package/build/markers/removeDuplicateMarks.js.map +1 -0
  1024. package/build/markers/removeMarks.js +16 -0
  1025. package/build/markers/removeMarks.js.map +1 -0
  1026. package/build/parse/build/build.js +62 -0
  1027. package/build/parse/build/build.js.map +1 -0
  1028. package/build/parse/build/index.js +14 -0
  1029. package/build/parse/build/index.js.map +1 -0
  1030. package/build/parse/build/private/adapt.js +111 -0
  1031. package/build/parse/build/private/adapt.js.map +1 -0
  1032. package/build/parse/build/private/adaptAttributes.js +41 -0
  1033. package/build/parse/build/private/adaptAttributes.js.map +1 -0
  1034. package/build/parse/build/private/alwaysFilterElements.js +32 -0
  1035. package/build/parse/build/private/alwaysFilterElements.js.map +1 -0
  1036. package/build/parse/build/private/combineIntoImplicitParagraphs.js +129 -0
  1037. package/build/parse/build/private/combineIntoImplicitParagraphs.js.map +1 -0
  1038. package/build/parse/build/private/filterBeforeTokenizing.js +37 -0
  1039. package/build/parse/build/private/filterBeforeTokenizing.js.map +1 -0
  1040. package/build/parse/build/private/filterHelpers.js +52 -0
  1041. package/build/parse/build/private/filterHelpers.js.map +1 -0
  1042. package/build/parse/build/private/filterTree.js +47 -0
  1043. package/build/parse/build/private/filterTree.js.map +1 -0
  1044. package/build/parse/build/private/getTextElementPositions.js +184 -0
  1045. package/build/parse/build/private/getTextElementPositions.js.map +1 -0
  1046. package/build/parse/build/private/helpers/parseClassAttribute.js +15 -0
  1047. package/build/parse/build/private/helpers/parseClassAttribute.js.map +1 -0
  1048. package/build/parse/build/private/isPhrasingContent.js +30 -0
  1049. package/build/parse/build/private/isPhrasingContent.js.map +1 -0
  1050. package/build/parse/build/private/parseBlocks.js +151 -0
  1051. package/build/parse/build/private/parseBlocks.js.map +1 -0
  1052. package/build/parse/build/private/tokenize.js +78 -0
  1053. package/build/parse/build/private/tokenize.js.map +1 -0
  1054. package/build/parse/language/LanguageProcessor.js +77 -0
  1055. package/build/parse/language/LanguageProcessor.js.map +1 -0
  1056. package/build/parse/structure/Heading.js +32 -0
  1057. package/build/parse/structure/Heading.js.map +1 -0
  1058. package/build/parse/structure/Node.js +75 -0
  1059. package/build/parse/structure/Node.js.map +1 -0
  1060. package/build/parse/structure/Paragraph.js +53 -0
  1061. package/build/parse/structure/Paragraph.js.map +1 -0
  1062. package/build/parse/structure/Sentence.js +36 -0
  1063. package/build/parse/structure/Sentence.js.map +1 -0
  1064. package/build/parse/structure/SourceCodeLocation.js +46 -0
  1065. package/build/parse/structure/SourceCodeLocation.js.map +1 -0
  1066. package/build/parse/structure/Text.js +33 -0
  1067. package/build/parse/structure/Text.js.map +1 -0
  1068. package/build/parse/structure/Token.js +29 -0
  1069. package/build/parse/structure/Token.js.map +1 -0
  1070. package/build/parse/structure/index.js +35 -0
  1071. package/build/parse/structure/index.js.map +1 -0
  1072. package/build/parse/traverse/findAllInTree.js +62 -0
  1073. package/build/parse/traverse/findAllInTree.js.map +1 -0
  1074. package/build/parse/traverse/index.js +21 -0
  1075. package/build/parse/traverse/index.js.map +1 -0
  1076. package/build/parse/traverse/innerText.js +30 -0
  1077. package/build/parse/traverse/innerText.js.map +1 -0
  1078. package/build/parsedPaper/ParsedPaper.js +100 -0
  1079. package/build/parsedPaper/ParsedPaper.js.map +1 -0
  1080. package/build/parsedPaper/assess/TreeAssessor.js +181 -0
  1081. package/build/parsedPaper/assess/TreeAssessor.js.map +1 -0
  1082. package/build/parsedPaper/assess/assessmentListFactories.js +77 -0
  1083. package/build/parsedPaper/assess/assessmentListFactories.js.map +1 -0
  1084. package/build/parsedPaper/assess/assessments/Assessment.js +86 -0
  1085. package/build/parsedPaper/assess/assessments/Assessment.js.map +1 -0
  1086. package/build/parsedPaper/assess/assessments/index.js +14 -0
  1087. package/build/parsedPaper/assess/assessments/index.js.map +1 -0
  1088. package/build/parsedPaper/assess/assessorFactories.js +104 -0
  1089. package/build/parsedPaper/assess/assessorFactories.js.map +1 -0
  1090. package/build/parsedPaper/assess/cornerstone/assessmentListFactories.js +51 -0
  1091. package/build/parsedPaper/assess/cornerstone/assessmentListFactories.js.map +1 -0
  1092. package/build/parsedPaper/assess/cornerstone/index.js +11 -0
  1093. package/build/parsedPaper/assess/cornerstone/index.js.map +1 -0
  1094. package/build/parsedPaper/assess/index.js +31 -0
  1095. package/build/parsedPaper/assess/index.js.map +1 -0
  1096. package/build/parsedPaper/build/PaperParser.js +103 -0
  1097. package/build/parsedPaper/build/PaperParser.js.map +1 -0
  1098. package/build/parsedPaper/build/linguisticParsing/Sentence.js +95 -0
  1099. package/build/parsedPaper/build/linguisticParsing/Sentence.js.map +1 -0
  1100. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +294 -0
  1101. package/build/parsedPaper/build/linguisticParsing/SentenceTokenizer.js.map +1 -0
  1102. package/build/parsedPaper/build/linguisticParsing/parseText.js +26 -0
  1103. package/build/parsedPaper/build/linguisticParsing/parseText.js.map +1 -0
  1104. package/build/parsedPaper/build/tree/TreeBuilder.js +82 -0
  1105. package/build/parsedPaper/build/tree/TreeBuilder.js.map +1 -0
  1106. package/build/parsedPaper/build/tree/cleanup/calculateTextIndices.js +183 -0
  1107. package/build/parsedPaper/build/tree/cleanup/calculateTextIndices.js.map +1 -0
  1108. package/build/parsedPaper/build/tree/cleanup/getElementContent.js +27 -0
  1109. package/build/parsedPaper/build/tree/cleanup/getElementContent.js.map +1 -0
  1110. package/build/parsedPaper/build/tree/cleanup/postParsing.js +43 -0
  1111. package/build/parsedPaper/build/tree/cleanup/postParsing.js.map +1 -0
  1112. package/build/parsedPaper/build/tree/html/HTMLTreeConverter.js +226 -0
  1113. package/build/parsedPaper/build/tree/html/HTMLTreeConverter.js.map +1 -0
  1114. package/build/parsedPaper/build/tree/html/buildTree.js +36 -0
  1115. package/build/parsedPaper/build/tree/html/buildTree.js.map +1 -0
  1116. package/build/parsedPaper/build/tree/html/htmlConstants.js +35 -0
  1117. package/build/parsedPaper/build/tree/html/htmlConstants.js.map +1 -0
  1118. package/build/parsedPaper/build/tree/index.js +20 -0
  1119. package/build/parsedPaper/build/tree/index.js.map +1 -0
  1120. package/build/parsedPaper/build/tree/metadata/buildTree.js +36 -0
  1121. package/build/parsedPaper/build/tree/metadata/buildTree.js.map +1 -0
  1122. package/build/parsedPaper/research/TreeResearcher.js +136 -0
  1123. package/build/parsedPaper/research/TreeResearcher.js.map +1 -0
  1124. package/build/parsedPaper/research/index.js +14 -0
  1125. package/build/parsedPaper/research/index.js.map +1 -0
  1126. package/build/parsedPaper/research/researches/Headings.js +26 -0
  1127. package/build/parsedPaper/research/researches/Headings.js.map +1 -0
  1128. package/build/parsedPaper/research/researches/LinkStatistics.js +129 -0
  1129. package/build/parsedPaper/research/researches/LinkStatistics.js.map +1 -0
  1130. package/build/parsedPaper/research/researches/Research.js +58 -0
  1131. package/build/parsedPaper/research/researches/Research.js.map +1 -0
  1132. package/build/parsedPaper/research/researches/index.js +14 -0
  1133. package/build/parsedPaper/research/researches/index.js.map +1 -0
  1134. package/build/parsedPaper/structure/tree/FormattingElement.js +73 -0
  1135. package/build/parsedPaper/structure/tree/FormattingElement.js.map +1 -0
  1136. package/build/parsedPaper/structure/tree/SourceCodeLocation.js +48 -0
  1137. package/build/parsedPaper/structure/tree/SourceCodeLocation.js.map +1 -0
  1138. package/build/parsedPaper/structure/tree/TextContainer.js +89 -0
  1139. package/build/parsedPaper/structure/tree/TextContainer.js.map +1 -0
  1140. package/build/parsedPaper/structure/tree/index.js +76 -0
  1141. package/build/parsedPaper/structure/tree/index.js.map +1 -0
  1142. package/build/parsedPaper/structure/tree/nodes/Heading.js +33 -0
  1143. package/build/parsedPaper/structure/tree/nodes/Heading.js.map +1 -0
  1144. package/build/parsedPaper/structure/tree/nodes/LeafNode.js +82 -0
  1145. package/build/parsedPaper/structure/tree/nodes/LeafNode.js.map +1 -0
  1146. package/build/parsedPaper/structure/tree/nodes/List.js +54 -0
  1147. package/build/parsedPaper/structure/tree/nodes/List.js.map +1 -0
  1148. package/build/parsedPaper/structure/tree/nodes/ListItem.js +34 -0
  1149. package/build/parsedPaper/structure/tree/nodes/ListItem.js.map +1 -0
  1150. package/build/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js +51 -0
  1151. package/build/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js.map +1 -0
  1152. package/build/parsedPaper/structure/tree/nodes/MetadataText.js +31 -0
  1153. package/build/parsedPaper/structure/tree/nodes/MetadataText.js.map +1 -0
  1154. package/build/parsedPaper/structure/tree/nodes/Node.js +159 -0
  1155. package/build/parsedPaper/structure/tree/nodes/Node.js.map +1 -0
  1156. package/build/parsedPaper/structure/tree/nodes/Paragraph.js +29 -0
  1157. package/build/parsedPaper/structure/tree/nodes/Paragraph.js.map +1 -0
  1158. package/build/parsedPaper/structure/tree/nodes/StructuredNode.js +60 -0
  1159. package/build/parsedPaper/structure/tree/nodes/StructuredNode.js.map +1 -0
  1160. package/build/parsedPaper/structure/tree/nodes/index.js +70 -0
  1161. package/build/parsedPaper/structure/tree/nodes/index.js.map +1 -0
  1162. package/build/scoring/assessments/assessment.js +68 -0
  1163. package/build/scoring/assessments/assessment.js.map +1 -0
  1164. package/build/scoring/assessments/index.js +64 -0
  1165. package/build/scoring/assessments/index.js.map +1 -0
  1166. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js +162 -0
  1167. package/build/scoring/assessments/readability/ParagraphTooLongAssessment.js.map +1 -0
  1168. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js +131 -0
  1169. package/build/scoring/assessments/readability/SentenceBeginningsAssessment.js.map +1 -0
  1170. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js +173 -0
  1171. package/build/scoring/assessments/readability/SentenceLengthInTextAssessment.js.map +1 -0
  1172. package/build/scoring/assessments/readability/TransitionWordsAssessment.js +159 -0
  1173. package/build/scoring/assessments/readability/TransitionWordsAssessment.js.map +1 -0
  1174. package/build/scoring/assessments/seo/ImageCountAssessment.js +107 -0
  1175. package/build/scoring/assessments/seo/ImageCountAssessment.js.map +1 -0
  1176. package/build/scoring/assessments/seo/InternalLinksAssessment.js +108 -0
  1177. package/build/scoring/assessments/seo/InternalLinksAssessment.js.map +1 -0
  1178. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js +105 -0
  1179. package/build/scoring/assessments/seo/IntroductionKeywordAssessment.js.map +1 -0
  1180. package/build/scoring/assessments/seo/KeyphraseAssessment.js +100 -0
  1181. package/build/scoring/assessments/seo/KeyphraseAssessment.js.map +1 -0
  1182. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js +105 -0
  1183. package/build/scoring/assessments/seo/KeyphraseLengthAssessment.js.map +1 -0
  1184. package/build/scoring/assessments/seo/KeywordDensityAssessment.js +111 -0
  1185. package/build/scoring/assessments/seo/KeywordDensityAssessment.js.map +1 -0
  1186. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +114 -0
  1187. package/build/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js.map +1 -0
  1188. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +107 -0
  1189. package/build/scoring/assessments/seo/MetaDescriptionLengthAssessment.js.map +1 -0
  1190. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js +111 -0
  1191. package/build/scoring/assessments/seo/MetaTitleKeywordAssessment.js.map +1 -0
  1192. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js +103 -0
  1193. package/build/scoring/assessments/seo/NumberInMetaTitleAssessment.js.map +1 -0
  1194. package/build/scoring/assessments/seo/OutboundLinksAssessment.js +110 -0
  1195. package/build/scoring/assessments/seo/OutboundLinksAssessment.js.map +1 -0
  1196. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js +101 -0
  1197. package/build/scoring/assessments/seo/PageTitleWidthAssessment.js.map +1 -0
  1198. package/build/scoring/assessments/seo/SingleH1Assessment.js +110 -0
  1199. package/build/scoring/assessments/seo/SingleH1Assessment.js.map +1 -0
  1200. package/build/scoring/assessments/seo/SingleTitleAssessment.js +103 -0
  1201. package/build/scoring/assessments/seo/SingleTitleAssessment.js.map +1 -0
  1202. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +103 -0
  1203. package/build/scoring/assessments/seo/SubHeadingsKeywordAssessment.js.map +1 -0
  1204. package/build/scoring/assessments/seo/TextImagesAssessment.js +138 -0
  1205. package/build/scoring/assessments/seo/TextImagesAssessment.js.map +1 -0
  1206. package/build/scoring/assessments/seo/TextLengthAssessment.js +100 -0
  1207. package/build/scoring/assessments/seo/TextLengthAssessment.js.map +1 -0
  1208. package/build/scoring/assessments/seo/UrlKeywordAssessment.js +102 -0
  1209. package/build/scoring/assessments/seo/UrlKeywordAssessment.js.map +1 -0
  1210. package/build/scoring/assessments/seo/UrlLengthAssessment.js +102 -0
  1211. package/build/scoring/assessments/seo/UrlLengthAssessment.js.map +1 -0
  1212. package/build/scoring/assessors/assessor.js +248 -0
  1213. package/build/scoring/assessors/assessor.js.map +1 -0
  1214. package/build/scoring/assessors/avadaAssessor.js +65 -0
  1215. package/build/scoring/assessors/avadaAssessor.js.map +1 -0
  1216. package/build/scoring/assessors/contentAssessor.js +149 -0
  1217. package/build/scoring/assessors/contentAssessor.js.map +1 -0
  1218. package/build/scoring/assessors/index.js +35 -0
  1219. package/build/scoring/assessors/index.js.map +1 -0
  1220. package/build/scoring/assessors/seoAssessor.js +44 -0
  1221. package/build/scoring/assessors/seoAssessor.js.map +1 -0
  1222. package/build/scoring/helpers/assessments/checkForTooLongSentences.js +19 -0
  1223. package/build/scoring/helpers/assessments/checkForTooLongSentences.js.map +1 -0
  1224. package/build/scoring/helpers/assessments/inRange.js +51 -0
  1225. package/build/scoring/helpers/assessments/inRange.js.map +1 -0
  1226. package/build/scoring/helpers/assessments/keyphraseLengthFactor.js +17 -0
  1227. package/build/scoring/helpers/assessments/keyphraseLengthFactor.js.map +1 -0
  1228. package/build/scoring/helpers/assessments/recommendedKeywordCount.js +47 -0
  1229. package/build/scoring/helpers/assessments/recommendedKeywordCount.js.map +1 -0
  1230. package/build/scoring/helpers/index.js +92 -0
  1231. package/build/scoring/helpers/index.js.map +1 -0
  1232. package/build/scoring/interpreters/index.js +14 -0
  1233. package/build/scoring/interpreters/index.js.map +1 -0
  1234. package/build/scoring/interpreters/scoreToRating.js +32 -0
  1235. package/build/scoring/interpreters/scoreToRating.js.map +1 -0
  1236. package/build/scoring/renderers/AssessorPresenter.js +348 -0
  1237. package/build/scoring/renderers/AssessorPresenter.js.map +1 -0
  1238. package/build/scoring/scoreAggregators/ReadabilityScoreAggregator.js +203 -0
  1239. package/build/scoring/scoreAggregators/ReadabilityScoreAggregator.js.map +1 -0
  1240. package/build/scoring/scoreAggregators/SEOScoreAggregator.js +60 -0
  1241. package/build/scoring/scoreAggregators/SEOScoreAggregator.js.map +1 -0
  1242. package/build/scoring/scoreAggregators/ScoreAggregator.js +30 -0
  1243. package/build/scoring/scoreAggregators/ScoreAggregator.js.map +1 -0
  1244. package/build/scoring/scoreAggregators/index.js +28 -0
  1245. package/build/scoring/scoreAggregators/index.js.map +1 -0
  1246. package/build/values/AssessmentResult.js +485 -0
  1247. package/build/values/AssessmentResult.js.map +1 -0
  1248. package/build/values/Mark.js +273 -0
  1249. package/build/values/Mark.js.map +1 -0
  1250. package/build/values/Paper.js +425 -0
  1251. package/build/values/Paper.js.map +1 -0
  1252. package/build/values/index.js +28 -0
  1253. package/build/values/index.js.map +1 -0
  1254. package/build/vendor/turkishStemmer.js +2817 -0
  1255. package/build/vendor/turkishStemmer.js.map +1 -0
  1256. package/package.json +42 -0
@@ -0,0 +1,394 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = stem;
7
+ var _index = require("../../../index");
8
+ var _stemHelpers = require("./stemHelpers");
9
+ const {
10
+ flattenSortLength,
11
+ buildFormRule,
12
+ createRulesFromArrays
13
+ } = _index.languageProcessing;
14
+ /**
15
+ * MIT License
16
+ *
17
+ * Adapted from: Copyright (c) 2013 Adinda Praditya
18
+ *
19
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
20
+ * and associated documentation files (the \"Software\"), to deal in the Software without restriction,
21
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
22
+ * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
23
+ * subject to the following conditions:
24
+ *
25
+ * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
26
+ * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
27
+ * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
28
+ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
29
+ * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
30
+ */
31
+
32
+ /**
33
+ * Checks if a single syllable word has one of the suffixes/suffix combination.
34
+ *
35
+ * @param {string} word The word to check.
36
+ * @param {Array} suffixesArray The array of suffixes
37
+ * @returns {boolean} Whether the word ends in one of the suffixes or not.
38
+ */
39
+ const checkSingleSyllableWordSuffix = function (word, suffixesArray) {
40
+ for (const suffix of suffixesArray) {
41
+ if (word.match(suffix)) {
42
+ return true;
43
+ }
44
+ }
45
+ };
46
+
47
+ /**
48
+ * Stems the prefix of the single syllable words, i.e. di-/penge-/menge-
49
+ *
50
+ * @param {string} word The word to check.
51
+ * @param {Object} morphologyData The Indonesian morphology data file.
52
+ *
53
+ * @returns {string} The stemmed word.
54
+ */
55
+ const stemSingleSyllableWordsPrefixes = function (word, morphologyData) {
56
+ // If the word gets prefix di-, stem the prefix here. E.g. dicekkanlah -> cekkanlah, dibomi -> bomi
57
+ if (word.startsWith('di') && (0, _stemHelpers.checkBeginningsList)(word, 2, morphologyData.stemming.singleSyllableWords)) {
58
+ return word.substring(2, word.length);
59
+ }
60
+ /*
61
+ * If the word gets prefix menge-/penge- and is followed by one of the words in the list, stem the prefix here.
62
+ * E.g. pengeboman -> boman
63
+ */
64
+ if (/^[mp]enge/i.test(word) && (0, _stemHelpers.checkBeginningsList)(word, 5, morphologyData.stemming.singleSyllableWords)) {
65
+ return word.substring(5, word.length);
66
+ }
67
+ return word;
68
+ };
69
+
70
+ /**
71
+ * Stems Indonesian single syllable words. This function concerns single syllable words
72
+ * with this possible word format [di/penge/menge] + single syllable word + [kan/an/i] + [ku/mu/nya] + [kah/lah/pun], with [] being optional.
73
+ * E.g. dipel -> pel, dipelkan -> pel, dipelkanlah -> pel, pelkan -> pel, pelmulah -> pel, pengeboman -> bom, mengesahkan -> sah
74
+ *
75
+ *
76
+ * @param {string} word The word to check.
77
+ * @param {Object} morphologyData The Indonesian morphology data file.
78
+ *
79
+ * @returns {string} The stemmed word.
80
+ */
81
+ const stemSingleSyllableWords = function (word, morphologyData) {
82
+ const singleSyllableWords = morphologyData.stemming.singleSyllableWords;
83
+ const suffixCombination = morphologyData.stemming.singleSyllableWordsSuffixes;
84
+ const inputWord = word;
85
+ // If the word starts with prefix di-/penge-/menge-, stem the prefix here. E.g. pengeboman -> boman, dipelkan -> pelkan
86
+ word = stemSingleSyllableWordsPrefixes(word, morphologyData);
87
+
88
+ // Check if a word starts with one of the words in the list, has maximum 3 syllables, and ends in one of the single syllable suffixes
89
+ if (singleSyllableWords.some(shortWord => word.startsWith(shortWord)) && (0, _stemHelpers.calculateTotalNumberOfSyllables)(word) <= 3 && checkSingleSyllableWordSuffix(word, suffixCombination)) {
90
+ // If the word gets a particle suffix, stem the particle. E.g. cekkanlah -> cekkan, pelkan -> pel, vasmulah -> vasmu
91
+ word = (0, _stemHelpers.removeEnding)(word, morphologyData.stemming.regexRules.removeParticle, morphologyData.stemming.doNotStemWords.doNotStemParticle, morphologyData);
92
+
93
+ // If the word gets a possessive pronoun suffix, stem the possessive pronoun. E.g. vasmu -> vas
94
+ word = (0, _stemHelpers.removeEnding)(word, morphologyData.stemming.regexRules.removePronoun, morphologyData.stemming.doNotStemWords.doNotStemPronounSuffix, morphologyData);
95
+
96
+ // If the word ends in -kan/-an/-i suffix, stem the suffix. E.g. cekkan -> cek, bomi -> bom
97
+ const wordWithoutDerivationalSuffix = (0, _stemHelpers.removeEnding)(word, morphologyData.stemming.regexRules.removeSuffixes, morphologyData.stemming.doNotStemWords.doNotStemSuffix, morphologyData);
98
+ if (singleSyllableWords.includes(wordWithoutDerivationalSuffix)) {
99
+ word = wordWithoutDerivationalSuffix;
100
+ }
101
+ }
102
+ /*
103
+ * We only want to stem single syllable words here.
104
+ * Thus, if the output word has more than one syllable, we don't stem the input word at all.
105
+ */
106
+ if ((0, _stemHelpers.calculateTotalNumberOfSyllables)(word) > 1 || word.length === 1) {
107
+ word = inputWord;
108
+ }
109
+ return word;
110
+ };
111
+
112
+ /**
113
+ * Tries stemming prefixes ke- and ter-. Ke- is always stemmed, and ter- only if it is a prefix and not part of the stem.
114
+ * Also if the stem of the word begins with r-, only te- is stemmed, not ter-.
115
+ *
116
+ * @param {Object} morphologyData The Indonesian morphology data file.
117
+ * @param {string} word The word to check.
118
+ *
119
+ * @returns {string|null} The stem or null if the word did not start with ter/keter.
120
+ */
121
+ const tryStemmingKeAndTer = function (morphologyData, word) {
122
+ const terException = morphologyData.stemming.doNotStemWords.doNotStemPrefix.doNotStemFirstOrderPrefix.doNotStemTer;
123
+
124
+ // If prefix -ter is preceded by prefix -ke, remove it first.
125
+ if (word.startsWith('keter')) {
126
+ word = word.substring(2, word.length);
127
+ }
128
+ if (word.startsWith('ter')) {
129
+ // If word is on an exception list of words where -ter should not be stemmed, do not stem -ter and return the word.
130
+ if (terException.some(wordWithTer => word.startsWith(wordWithTer))) {
131
+ return word;
132
+ }
133
+ // If word (without prefixes) is on the list of words beginning with -r, remove only -te instead of -ter.
134
+ if ((0, _stemHelpers.checkBeginningsList)(word, 3, morphologyData.stemming.beginningModification.rBeginning)) {
135
+ return word.replace(/^ter/i, 'r');
136
+ }
137
+ // Otherwise, remove -ter.
138
+ return word.substring(3, word.length);
139
+ }
140
+ };
141
+ /**
142
+ * Checks whether a word has a first order prefix and whether it is on an exception list of words which require a stem mofification
143
+ * after removing the prefix. Returns the stem if the prefix was found and the word was matched on an exception list.
144
+ *
145
+ *
146
+ * @param {string} word The word to check.
147
+ * @param {Object} morphologyData The Indonesian morphology data file.
148
+ *
149
+ * @returns {string|null} The stem or null if a prefix was not found, or was found but the word was not on the exception list.
150
+ */
151
+ const checkFirstOrderPrefixExceptions = function (word, morphologyData) {
152
+ const beginningModification = morphologyData.stemming.beginningModification;
153
+
154
+ // If a word starts with "men" or "pen" and is present in the nBeginning exception list, the prefix should be replaced with "n".
155
+ if (/^[mp]en/i.test(word)) {
156
+ if ((0, _stemHelpers.checkBeginningsList)(word, 3, beginningModification.nBeginning)) {
157
+ return word.replace(/^[mp]en/i, 'n');
158
+ }
159
+ }
160
+ if (/^[mp]eng/i.test(word) && (0, _stemHelpers.checkBeginningsList)(word, 4, beginningModification.kBeginning)) {
161
+ return word.replace(/^[mp]eng/i, 'k');
162
+ }
163
+ if (/^[mp]em/i.test(word)) {
164
+ if ((0, _stemHelpers.checkBeginningsList)(word, 3, beginningModification.pBeginning)) {
165
+ return word.replace(/^(mem|pem)/i, 'p');
166
+ } else if ((0, _stemHelpers.checkBeginningsList)(word, 3, beginningModification.mBeginning)) {
167
+ return word.replace(/^(mem|pem)/i, 'm');
168
+ }
169
+ }
170
+ // Stem prefix ke- if found. Stem te(r)- unless the word was found on the exception list of words with stem beginning in -ter.
171
+ const wordAfterKeTerCheck = tryStemmingKeAndTer(morphologyData, word);
172
+ if (wordAfterKeTerCheck) {
173
+ return wordAfterKeTerCheck;
174
+ }
175
+ };
176
+
177
+ /**
178
+ * Stems the first-order prefix of a word based on regexRules. If the word is found in an exception list, implements a stem modification.
179
+ *
180
+ * @param {string} word The word to stem.
181
+ * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.
182
+ *
183
+ * @returns {string} The stemmed word.
184
+ */
185
+ const removeFirstOrderPrefix = function (word, morphologyData) {
186
+ // Checks whether the word has a first order prefix and requires a stem modification.
187
+ const firstOrderPrefixException = checkFirstOrderPrefixExceptions(word, morphologyData);
188
+ if (firstOrderPrefixException) {
189
+ return firstOrderPrefixException;
190
+ }
191
+ const regex = createRulesFromArrays(morphologyData.stemming.regexRules.removeFirstOrderPrefixes);
192
+ const withRemovedFirstOrderPrefix = buildFormRule(word, regex);
193
+ return withRemovedFirstOrderPrefix || word;
194
+ };
195
+
196
+ /**
197
+ * Stems the second-order prefix of a word based on regexRules. If the word is found in an exception list, implements a stem modification.
198
+ *
199
+ * @param {string} word The word to stem.
200
+ * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.
201
+ *
202
+ * @returns {string} The stemmed word.
203
+ */
204
+ const removeSecondOrderPrefix = function (word, morphologyData) {
205
+ // If a word starts with "ber" or "per" and is present in the rBeginning exception list, the prefix should be replaced with "r".
206
+ if ((word.startsWith('ber') || word.startsWith('per')) && (0, _stemHelpers.checkBeginningsList)(word, 3, morphologyData.stemming.beginningModification.rBeginning)) {
207
+ return word.replace(/^(ber|per)/i, 'r');
208
+ }
209
+ // If a word starts with a first order prefix followed by peng- and is in the kBeginning exception list, then peng- should be replaced with k.
210
+ if (/^peng/i.test(word) && (0, _stemHelpers.checkBeginningsList)(word, 4, morphologyData.stemming.beginningModification.kBeginning)) {
211
+ return word.replace(/^peng/i, 'k');
212
+ }
213
+ const regex = createRulesFromArrays(morphologyData.stemming.regexRules.removeSecondOrderPrefixes);
214
+ const withRemovedSecondOrderPrefix = buildFormRule(word, regex);
215
+ return withRemovedSecondOrderPrefix || word;
216
+ };
217
+
218
+ /**
219
+ * Stems derivational affixes of Indonesian words.
220
+ *
221
+ * @param {string} word The word to stem.
222
+ * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.
223
+ *
224
+ * @returns {string} The stemmed word.
225
+ */
226
+ const stemDerivational = function (word, morphologyData) {
227
+ let wordLength = word.length;
228
+ const removeSuffixRules = morphologyData.stemming.regexRules.removeSuffixes;
229
+ const removeSuffixExceptions = morphologyData.stemming.doNotStemWords.doNotStemSuffix;
230
+ const doNotStemFirstOrderPrefix = flattenSortLength(morphologyData.stemming.doNotStemWords.doNotStemPrefix.doNotStemFirstOrderPrefix);
231
+ const doNotStemSecondOrderPrefix = flattenSortLength(morphologyData.stemming.doNotStemWords.doNotStemPrefix.doNotStemSecondOrderPrefix);
232
+
233
+ // If a word is in the list of words with a beginning that looks like a valid suffix, do not stem the suffix
234
+ if (!doNotStemFirstOrderPrefix.some(wordWithPrefixLookAlike => word.startsWith(wordWithPrefixLookAlike))) {
235
+ /*
236
+ * If the word has more than 2 syllables and starts with one of first order prefixes (i.e. meng-, meny-, men-, mem-, me-,
237
+ * peng-, peny-, pen-, pem-, di-, ter-, ke- ), the prefix will be stemmed here. e.g. penyebaran -> sebaran, diperlebarkan -> perlebarkan
238
+ */
239
+ word = removeFirstOrderPrefix(word, morphologyData);
240
+ }
241
+ if (wordLength === word.length) {
242
+ if (!doNotStemSecondOrderPrefix.some(wordWithPrefixLookAlike => word.startsWith(wordWithPrefixLookAlike))) {
243
+ /*
244
+ * If the word does not start with one of the first order prefixes but starts with one of the second order prefixes,
245
+ * the prefix will be stemmed here, e.g., peranakan -> anakan
246
+ */
247
+ word = removeSecondOrderPrefix(word, morphologyData);
248
+ }
249
+ // If the word has more than 2 syllables and ends in either -kan, -an, or -i suffixes, the suffix will be deleted here, e.g., anakan -> anak
250
+ if ((0, _stemHelpers.calculateTotalNumberOfSyllables)(word) > 2) {
251
+ word = (0, _stemHelpers.removeEnding)(word, removeSuffixRules, removeSuffixExceptions, morphologyData);
252
+ }
253
+ } else {
254
+ // If the word previously had a first order prefix, assign wordLength to the length of the word after prefix deletion.
255
+ wordLength = word.length;
256
+ /*
257
+ * If the word after first order prefix deletion is bigger than 2 and ends in either -kan, -an, or -i suffixes,
258
+ * the suffix will be stemmed here. e.g. penyebaran - sebar.
259
+ */
260
+ if ((0, _stemHelpers.calculateTotalNumberOfSyllables)(word) > 2) {
261
+ word = (0, _stemHelpers.removeEnding)(word, removeSuffixRules, removeSuffixExceptions, morphologyData);
262
+ }
263
+ /*
264
+ * If the word previously had a suffix, we check further if the word after first order prefix and suffix deletion has more than 2 syllables.
265
+ * If it does have more than 2 syllables and starts with one of the second order prefixes (i.e. ber-, be-, per-, pe-), the prefix will
266
+ * be stemmed here unless the word is in the exception list of words with a beginning that looks like a second order prefix.
267
+ */
268
+ if (wordLength !== word.length && !doNotStemSecondOrderPrefix.includes(word)) {
269
+ if ((0, _stemHelpers.calculateTotalNumberOfSyllables)(word) > 2) {
270
+ word = removeSecondOrderPrefix(word, morphologyData);
271
+ }
272
+ }
273
+ }
274
+ return word;
275
+ };
276
+
277
+ /**
278
+ * Stems Indonesian singular words.
279
+ *
280
+ * @param {string} word The singular word to stem.
281
+ * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.
282
+ *
283
+ * @returns {string} The stem of an Indonesian singular word.
284
+ */
285
+ const stemSingular = function (word, morphologyData) {
286
+ const singleSyllableWords = stemSingleSyllableWords(word, morphologyData);
287
+ // Stem the single syllable words
288
+ word = singleSyllableWords;
289
+ const doNotStemParticle = morphologyData.stemming.doNotStemWords.doNotStemParticle;
290
+ const doNotStemPronoun = morphologyData.stemming.doNotStemWords.doNotStemPronounSuffix;
291
+ if ((0, _stemHelpers.calculateTotalNumberOfSyllables)(word) <= 2) {
292
+ return word;
293
+ }
294
+
295
+ // Check if a word after its derivational affixes stemmed exists in the exception list.
296
+ const firstDerivationalStem = stemDerivational(word, morphologyData);
297
+ if (doNotStemParticle.includes(firstDerivationalStem) || doNotStemPronoun.includes(firstDerivationalStem)) {
298
+ // If it does exist in the exception list, the ending that looks like a particle or a pronoun suffix should not be stemmed.
299
+ return firstDerivationalStem;
300
+ }
301
+
302
+ /*
303
+ * If the word has more than 2 syllables and ends in of the particle endings (i.e. -kah, -lah, -pun), stem the particle here.
304
+ * e.g. bajumulah -> bajumu, bawalah -> bawa
305
+ */
306
+ word = (0, _stemHelpers.removeEnding)(word, morphologyData.stemming.regexRules.removeParticle, doNotStemParticle, morphologyData);
307
+
308
+ // If the word (still) has more than 2 syllables and ends in of the possessive pronoun endings (i.e. -ku, -mu, -nya), stem the ending here.
309
+ if ((0, _stemHelpers.calculateTotalNumberOfSyllables)(word) > 2) {
310
+ // E.g. bajumu -> baju
311
+ word = (0, _stemHelpers.removeEnding)(word, morphologyData.stemming.regexRules.removePronoun, doNotStemPronoun, morphologyData);
312
+ }
313
+
314
+ // If the word (still) has more than 2 syllables and has derivational affixes, the affix(es) will be stemmed here.
315
+ if ((0, _stemHelpers.calculateTotalNumberOfSyllables)(word) > 2) {
316
+ word = stemDerivational(word, morphologyData);
317
+ }
318
+ return word;
319
+ };
320
+
321
+ /**
322
+ * Stems Indonesian plural words.
323
+ *
324
+ * @param {string} word The plural word to stem.
325
+ * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.
326
+ *
327
+ * @returns {string|null} The stem of an Indonesian plural word or null if no plural was detected.
328
+ */
329
+ const stemPlural = function (word, morphologyData) {
330
+ const hyphenIndex = word.indexOf('-');
331
+
332
+ // If there is no hyphen in the word, it can't be a reduplicated plural.
333
+ if (hyphenIndex === -1) {
334
+ return null;
335
+ }
336
+ const splitWord = word.split('-');
337
+ if (splitWord.length === 2) {
338
+ let firstPart = splitWord[0];
339
+ let secondPart = splitWord[1];
340
+ firstPart = stemSingular(firstPart, morphologyData);
341
+ secondPart = stemSingular(secondPart, morphologyData);
342
+
343
+ /*
344
+ * To compare the first and second part and see whether it's actually a reduplication:
345
+ * Trim the beginning of the word since it might be variable due to stem changes caused by prefixes.
346
+ * For example, in "meniru-nirukan" the singular stemmer will correctly stem the first "niru" to "tiru" because
347
+ * of the prefix "me". Since the second part of the word is stemmed individually, there is no "me" and hence
348
+ * "niru" remains "niru". To still be able to link these two forms to each other,
349
+ * we compare the two parts of the word after stripping the variable first or first and second letter.
350
+ *
351
+ */
352
+ const firstPartBeginningTrimmed = firstPart.substring(1);
353
+ const secondPartBeginningTrimmed = secondPart.startsWith('ng') || secondPart.startsWith('ny') ? secondPart.substring(2) : secondPart.substring(1);
354
+ if (firstPartBeginningTrimmed === secondPartBeginningTrimmed) {
355
+ const nonPlurals = morphologyData.stemming.nonPluralReduplications;
356
+
357
+ // Check non-plural reduplication.
358
+ if (nonPlurals.includes(firstPart) && nonPlurals.includes(secondPart)) {
359
+ /*
360
+ * In words such as "mengira-ngira" prefix "me" causes a modification on both words (k->ng). This will
361
+ * be correctly stemmed for the first word, but not the second. Therefore, the correct base form
362
+ * "kira-kira" is created based on a reduplication of the correctly stemmed first part, "kira".
363
+ */
364
+ return firstPart + '-' + firstPart;
365
+ }
366
+
367
+ // Return the stemmed singular form of a reduplicated plural.
368
+ return firstPart;
369
+ }
370
+ }
371
+ return null;
372
+ };
373
+
374
+ /**
375
+ * Stems Indonesian words
376
+ *
377
+ * @param {string} word The word to stem.
378
+ * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.
379
+ *
380
+ * @returns {string} The stem of an Indonesian word.
381
+ */
382
+ function stem(word, morphologyData) {
383
+ // Check words that shouldn't receive any stemming.
384
+ if (morphologyData.stemming.shouldNotBeStemmed.includes(word)) {
385
+ return word;
386
+ }
387
+ const stemmedPlural = stemPlural(word, morphologyData);
388
+ if (stemmedPlural) {
389
+ return stemmedPlural;
390
+ }
391
+ word = stemSingular(word, morphologyData);
392
+ return word;
393
+ }
394
+ //# sourceMappingURL=stem.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stem.js","names":["_index","require","_stemHelpers","flattenSortLength","buildFormRule","createRulesFromArrays","languageProcessing","checkSingleSyllableWordSuffix","word","suffixesArray","suffix","match","stemSingleSyllableWordsPrefixes","morphologyData","startsWith","checkBeginningsList","stemming","singleSyllableWords","substring","length","test","stemSingleSyllableWords","suffixCombination","singleSyllableWordsSuffixes","inputWord","some","shortWord","calculateTotalNumberOfSyllables","removeEnding","regexRules","removeParticle","doNotStemWords","doNotStemParticle","removePronoun","doNotStemPronounSuffix","wordWithoutDerivationalSuffix","removeSuffixes","doNotStemSuffix","includes","tryStemmingKeAndTer","terException","doNotStemPrefix","doNotStemFirstOrderPrefix","doNotStemTer","wordWithTer","beginningModification","rBeginning","replace","checkFirstOrderPrefixExceptions","nBeginning","kBeginning","pBeginning","mBeginning","wordAfterKeTerCheck","removeFirstOrderPrefix","firstOrderPrefixException","regex","removeFirstOrderPrefixes","withRemovedFirstOrderPrefix","removeSecondOrderPrefix","removeSecondOrderPrefixes","withRemovedSecondOrderPrefix","stemDerivational","wordLength","removeSuffixRules","removeSuffixExceptions","doNotStemSecondOrderPrefix","wordWithPrefixLookAlike","stemSingular","doNotStemPronoun","firstDerivationalStem","stemPlural","hyphenIndex","indexOf","splitWord","split","firstPart","secondPart","firstPartBeginningTrimmed","secondPartBeginningTrimmed","nonPlurals","nonPluralReduplications","stem","shouldNotBeStemmed","stemmedPlural"],"sources":["../../../../../../src/languageProcessing/languages/id/helpers/internal/stem.js"],"sourcesContent":["import {languageProcessing} from '../../../index';\nconst {flattenSortLength, buildFormRule, createRulesFromArrays} = languageProcessing;\n\nimport {calculateTotalNumberOfSyllables, removeEnding, checkBeginningsList} from './stemHelpers';\n\n/**\n * MIT License\n *\n * Adapted from: Copyright (c) 2013 Adinda Praditya\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy of this software\n * and associated documentation files (the \\\"Software\\\"), to deal in the Software without restriction,\n * including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,\n * subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n * THE SOFTWARE IS PROVIDED \\\"AS IS\\\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,\n * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\"\n */\n\n/**\n * Checks if a single syllable word has one of the suffixes/suffix combination.\n *\n * @param {string} word The word to check.\n * @param {Array} suffixesArray The array of suffixes\n * @returns {boolean} Whether the word ends in one of the suffixes or not.\n */\nconst checkSingleSyllableWordSuffix = function(word, suffixesArray) {\n for (const suffix of suffixesArray) {\n if (word.match(suffix)) {\n return true;\n }\n }\n};\n\n/**\n * Stems the prefix of the single syllable words, i.e. di-/penge-/menge-\n *\n * @param {string}\tword\t\t\tThe word to check.\n * @param {Object}\tmorphologyData\tThe Indonesian morphology data file.\n *\n * @returns {string} The stemmed word.\n */\nconst stemSingleSyllableWordsPrefixes = function(word, morphologyData) {\n // If the word gets prefix di-, stem the prefix here. E.g. dicekkanlah -> cekkanlah, dibomi -> bomi\n if (\n word.startsWith('di') &&\n checkBeginningsList(word, 2, morphologyData.stemming.singleSyllableWords)\n ) {\n return word.substring(2, word.length);\n }\n /*\n * If the word gets prefix menge-/penge- and is followed by one of the words in the list, stem the prefix here.\n * E.g. pengeboman -> boman\n */\n if (\n /^[mp]enge/i.test(word) &&\n checkBeginningsList(word, 5, morphologyData.stemming.singleSyllableWords)\n ) {\n return word.substring(5, word.length);\n }\n return word;\n};\n\n/**\n * Stems Indonesian single syllable words. This function concerns single syllable words\n * with this possible word format [di/penge/menge] + single syllable word + [kan/an/i] + [ku/mu/nya] + [kah/lah/pun], with [] being optional.\n * E.g. dipel -> pel, dipelkan -> pel, dipelkanlah -> pel, pelkan -> pel, pelmulah -> pel, pengeboman -> bom, mengesahkan -> sah\n *\n *\n * @param {string}\tword\t\t\tThe word to check.\n * @param {Object}\tmorphologyData\tThe Indonesian morphology data file.\n *\n * @returns {string} The stemmed word.\n */\nconst stemSingleSyllableWords = function(word, morphologyData) {\n const singleSyllableWords = morphologyData.stemming.singleSyllableWords;\n const suffixCombination = morphologyData.stemming.singleSyllableWordsSuffixes;\n const inputWord = word;\n // If the word starts with prefix di-/penge-/menge-, stem the prefix here. E.g. pengeboman -> boman, dipelkan -> pelkan\n word = stemSingleSyllableWordsPrefixes(word, morphologyData);\n\n // Check if a word starts with one of the words in the list, has maximum 3 syllables, and ends in one of the single syllable suffixes\n if (\n singleSyllableWords.some(shortWord => word.startsWith(shortWord)) &&\n calculateTotalNumberOfSyllables(word) <= 3 &&\n checkSingleSyllableWordSuffix(word, suffixCombination)\n ) {\n // If the word gets a particle suffix, stem the particle. E.g. cekkanlah -> cekkan, pelkan -> pel, vasmulah -> vasmu\n word = removeEnding(\n word,\n morphologyData.stemming.regexRules.removeParticle,\n morphologyData.stemming.doNotStemWords.doNotStemParticle,\n morphologyData\n );\n\n // If the word gets a possessive pronoun suffix, stem the possessive pronoun. E.g. vasmu -> vas\n word = removeEnding(\n word,\n morphologyData.stemming.regexRules.removePronoun,\n morphologyData.stemming.doNotStemWords.doNotStemPronounSuffix,\n morphologyData\n );\n\n // If the word ends in -kan/-an/-i suffix, stem the suffix. E.g. cekkan -> cek, bomi -> bom\n const wordWithoutDerivationalSuffix = removeEnding(\n word,\n morphologyData.stemming.regexRules.removeSuffixes,\n morphologyData.stemming.doNotStemWords.doNotStemSuffix,\n morphologyData\n );\n\n if (singleSyllableWords.includes(wordWithoutDerivationalSuffix)) {\n word = wordWithoutDerivationalSuffix;\n }\n }\n /*\n * We only want to stem single syllable words here.\n * Thus, if the output word has more than one syllable, we don't stem the input word at all.\n */\n if (calculateTotalNumberOfSyllables(word) > 1 || word.length === 1) {\n word = inputWord;\n }\n return word;\n};\n\n/**\n * Tries stemming prefixes ke- and ter-. Ke- is always stemmed, and ter- only if it is a prefix and not part of the stem.\n * Also if the stem of the word begins with r-, only te- is stemmed, not ter-.\n *\n * @param {Object}\tmorphologyData\tThe Indonesian morphology data file.\n * @param {string}\tword\t\t\tThe word to check.\n *\n * @returns {string|null}\tThe stem or null if the word did not start with ter/keter.\n */\nconst tryStemmingKeAndTer = function(morphologyData, word) {\n const terException =\n morphologyData.stemming.doNotStemWords.doNotStemPrefix.doNotStemFirstOrderPrefix.doNotStemTer;\n\n // If prefix -ter is preceded by prefix -ke, remove it first.\n if (word.startsWith('keter')) {\n word = word.substring(2, word.length);\n }\n if (word.startsWith('ter')) {\n // If word is on an exception list of words where -ter should not be stemmed, do not stem -ter and return the word.\n if (terException.some(wordWithTer => word.startsWith(wordWithTer))) {\n return word;\n }\n // If word (without prefixes) is on the list of words beginning with -r, remove only -te instead of -ter.\n if (checkBeginningsList(word, 3, morphologyData.stemming.beginningModification.rBeginning)) {\n return word.replace(/^ter/i, 'r');\n }\n // Otherwise, remove -ter.\n return word.substring(3, word.length);\n }\n};\n/**\n * Checks whether a word has a first order prefix and whether it is on an exception list of words which require a stem mofification\n * after removing the prefix. Returns the stem if the prefix was found and the word was matched on an exception list.\n *\n *\n * @param {string}\tword\t\t\tThe word to check.\n * @param {Object}\tmorphologyData\tThe Indonesian morphology data file.\n *\n * @returns {string|null}\tThe stem or null if a prefix was not found, or was found but the word was not on the exception list.\n */\nconst checkFirstOrderPrefixExceptions = function(word, morphologyData) {\n const beginningModification = morphologyData.stemming.beginningModification;\n\n // If a word starts with \"men\" or \"pen\" and is present in the nBeginning exception list, the prefix should be replaced with \"n\".\n if (/^[mp]en/i.test(word)) {\n if (checkBeginningsList(word, 3, beginningModification.nBeginning)) {\n return word.replace(/^[mp]en/i, 'n');\n }\n }\n if (/^[mp]eng/i.test(word) && checkBeginningsList(word, 4, beginningModification.kBeginning)) {\n return word.replace(/^[mp]eng/i, 'k');\n }\n\n if (/^[mp]em/i.test(word)) {\n if (checkBeginningsList(word, 3, beginningModification.pBeginning)) {\n return word.replace(/^(mem|pem)/i, 'p');\n } else if (checkBeginningsList(word, 3, beginningModification.mBeginning)) {\n return word.replace(/^(mem|pem)/i, 'm');\n }\n }\n // Stem prefix ke- if found. Stem te(r)- unless the word was found on the exception list of words with stem beginning in -ter.\n const wordAfterKeTerCheck = tryStemmingKeAndTer(morphologyData, word);\n if (wordAfterKeTerCheck) {\n return wordAfterKeTerCheck;\n }\n};\n\n/**\n * Stems the first-order prefix of a word based on regexRules. If the word is found in an exception list, implements a stem modification.\n *\n * @param {string} word The word to stem.\n * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.\n *\n * @returns {string} The stemmed word.\n */\nconst removeFirstOrderPrefix = function(word, morphologyData) {\n // Checks whether the word has a first order prefix and requires a stem modification.\n const firstOrderPrefixException = checkFirstOrderPrefixExceptions(word, morphologyData);\n\n if (firstOrderPrefixException) {\n return firstOrderPrefixException;\n }\n const regex = createRulesFromArrays(morphologyData.stemming.regexRules.removeFirstOrderPrefixes);\n const withRemovedFirstOrderPrefix = buildFormRule(word, regex);\n\n return withRemovedFirstOrderPrefix || word;\n};\n\n/**\n * Stems the second-order prefix of a word based on regexRules. If the word is found in an exception list, implements a stem modification.\n *\n * @param {string} word The word to stem.\n * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.\n *\n * @returns {string} The stemmed word.\n */\nconst removeSecondOrderPrefix = function(word, morphologyData) {\n // If a word starts with \"ber\" or \"per\" and is present in the rBeginning exception list, the prefix should be replaced with \"r\".\n if (\n (word.startsWith('ber') || word.startsWith('per')) &&\n checkBeginningsList(word, 3, morphologyData.stemming.beginningModification.rBeginning)\n ) {\n return word.replace(/^(ber|per)/i, 'r');\n }\n // If a word starts with a first order prefix followed by peng- and is in the kBeginning exception list, then peng- should be replaced with k.\n if (\n /^peng/i.test(word) &&\n checkBeginningsList(word, 4, morphologyData.stemming.beginningModification.kBeginning)\n ) {\n return word.replace(/^peng/i, 'k');\n }\n const regex = createRulesFromArrays(morphologyData.stemming.regexRules.removeSecondOrderPrefixes);\n const withRemovedSecondOrderPrefix = buildFormRule(word, regex);\n\n return withRemovedSecondOrderPrefix || word;\n};\n\n/**\n * Stems derivational affixes of Indonesian words.\n *\n * @param {string} word The word to stem.\n * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.\n *\n * @returns {string} The stemmed word.\n */\nconst stemDerivational = function(word, morphologyData) {\n let wordLength = word.length;\n const removeSuffixRules = morphologyData.stemming.regexRules.removeSuffixes;\n const removeSuffixExceptions = morphologyData.stemming.doNotStemWords.doNotStemSuffix;\n const doNotStemFirstOrderPrefix = flattenSortLength(\n morphologyData.stemming.doNotStemWords.doNotStemPrefix.doNotStemFirstOrderPrefix\n );\n const doNotStemSecondOrderPrefix = flattenSortLength(\n morphologyData.stemming.doNotStemWords.doNotStemPrefix.doNotStemSecondOrderPrefix\n );\n\n // If a word is in the list of words with a beginning that looks like a valid suffix, do not stem the suffix\n if (\n !doNotStemFirstOrderPrefix.some(wordWithPrefixLookAlike =>\n word.startsWith(wordWithPrefixLookAlike)\n )\n ) {\n /*\n * If the word has more than 2 syllables and starts with one of first order prefixes (i.e. meng-, meny-, men-, mem-, me-,\n * peng-, peny-, pen-, pem-, di-, ter-, ke- ), the prefix will be stemmed here. e.g. penyebaran -> sebaran, diperlebarkan -> perlebarkan\n */\n word = removeFirstOrderPrefix(word, morphologyData);\n }\n\n if (wordLength === word.length) {\n if (\n !doNotStemSecondOrderPrefix.some(wordWithPrefixLookAlike =>\n word.startsWith(wordWithPrefixLookAlike)\n )\n ) {\n /*\n * If the word does not start with one of the first order prefixes but starts with one of the second order prefixes,\n * the prefix will be stemmed here, e.g., peranakan -> anakan\n */\n word = removeSecondOrderPrefix(word, morphologyData);\n }\n // If the word has more than 2 syllables and ends in either -kan, -an, or -i suffixes, the suffix will be deleted here, e.g., anakan -> anak\n if (calculateTotalNumberOfSyllables(word) > 2) {\n word = removeEnding(word, removeSuffixRules, removeSuffixExceptions, morphologyData);\n }\n } else {\n // If the word previously had a first order prefix, assign wordLength to the length of the word after prefix deletion.\n wordLength = word.length;\n /*\n * If the word after first order prefix deletion is bigger than 2 and ends in either -kan, -an, or -i suffixes,\n * the suffix will be stemmed here. e.g. penyebaran - sebar.\n */\n if (calculateTotalNumberOfSyllables(word) > 2) {\n word = removeEnding(word, removeSuffixRules, removeSuffixExceptions, morphologyData);\n }\n /*\n * If the word previously had a suffix, we check further if the word after first order prefix and suffix deletion has more than 2 syllables.\n * If it does have more than 2 syllables and starts with one of the second order prefixes (i.e. ber-, be-, per-, pe-), the prefix will\n * be stemmed here unless the word is in the exception list of words with a beginning that looks like a second order prefix.\n */\n if (wordLength !== word.length && !doNotStemSecondOrderPrefix.includes(word)) {\n if (calculateTotalNumberOfSyllables(word) > 2) {\n word = removeSecondOrderPrefix(word, morphologyData);\n }\n }\n }\n return word;\n};\n\n/**\n * Stems Indonesian singular words.\n *\n * @param {string} word The singular word to stem.\n * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.\n *\n * @returns {string} The stem of an Indonesian singular word.\n */\nconst stemSingular = function(word, morphologyData) {\n const singleSyllableWords = stemSingleSyllableWords(word, morphologyData);\n // Stem the single syllable words\n word = singleSyllableWords;\n\n const doNotStemParticle = morphologyData.stemming.doNotStemWords.doNotStemParticle;\n const doNotStemPronoun = morphologyData.stemming.doNotStemWords.doNotStemPronounSuffix;\n\n if (calculateTotalNumberOfSyllables(word) <= 2) {\n return word;\n }\n\n // Check if a word after its derivational affixes stemmed exists in the exception list.\n const firstDerivationalStem = stemDerivational(word, morphologyData);\n if (\n doNotStemParticle.includes(firstDerivationalStem) ||\n doNotStemPronoun.includes(firstDerivationalStem)\n ) {\n // If it does exist in the exception list, the ending that looks like a particle or a pronoun suffix should not be stemmed.\n return firstDerivationalStem;\n }\n\n /*\n * If the word has more than 2 syllables and ends in of the particle endings (i.e. -kah, -lah, -pun), stem the particle here.\n * e.g. bajumulah -> bajumu, bawalah -> bawa\n */\n word = removeEnding(\n word,\n morphologyData.stemming.regexRules.removeParticle,\n doNotStemParticle,\n morphologyData\n );\n\n // If the word (still) has more than 2 syllables and ends in of the possessive pronoun endings (i.e. -ku, -mu, -nya), stem the ending here.\n if (calculateTotalNumberOfSyllables(word) > 2) {\n // E.g. bajumu -> baju\n word = removeEnding(\n word,\n morphologyData.stemming.regexRules.removePronoun,\n doNotStemPronoun,\n morphologyData\n );\n }\n\n // If the word (still) has more than 2 syllables and has derivational affixes, the affix(es) will be stemmed here.\n if (calculateTotalNumberOfSyllables(word) > 2) {\n word = stemDerivational(word, morphologyData);\n }\n return word;\n};\n\n/**\n * Stems Indonesian plural words.\n *\n * @param {string} word The plural word to stem.\n * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.\n *\n * @returns {string|null} The stem of an Indonesian plural word or null if no plural was detected.\n */\nconst stemPlural = function(word, morphologyData) {\n const hyphenIndex = word.indexOf('-');\n\n // If there is no hyphen in the word, it can't be a reduplicated plural.\n if (hyphenIndex === -1) {\n return null;\n }\n\n const splitWord = word.split('-');\n\n if (splitWord.length === 2) {\n let firstPart = splitWord[0];\n let secondPart = splitWord[1];\n\n firstPart = stemSingular(firstPart, morphologyData);\n secondPart = stemSingular(secondPart, morphologyData);\n\n /*\n * To compare the first and second part and see whether it's actually a reduplication:\n * Trim the beginning of the word since it might be variable due to stem changes caused by prefixes.\n * For example, in \"meniru-nirukan\" the singular stemmer will correctly stem the first \"niru\" to \"tiru\" because\n * of the prefix \"me\". Since the second part of the word is stemmed individually, there is no \"me\" and hence\n * \"niru\" remains \"niru\". To still be able to link these two forms to each other,\n * we compare the two parts of the word after stripping the variable first or first and second letter.\n *\n */\n const firstPartBeginningTrimmed = firstPart.substring(1);\n const secondPartBeginningTrimmed =\n secondPart.startsWith('ng') || secondPart.startsWith('ny')\n ? secondPart.substring(2)\n : secondPart.substring(1);\n\n if (firstPartBeginningTrimmed === secondPartBeginningTrimmed) {\n const nonPlurals = morphologyData.stemming.nonPluralReduplications;\n\n // Check non-plural reduplication.\n if (nonPlurals.includes(firstPart) && nonPlurals.includes(secondPart)) {\n /*\n * In words such as \"mengira-ngira\" prefix \"me\" causes a modification on both words (k->ng). This will\n * be correctly stemmed for the first word, but not the second. Therefore, the correct base form\n * \"kira-kira\" is created based on a reduplication of the correctly stemmed first part, \"kira\".\n */\n return firstPart + '-' + firstPart;\n }\n\n // Return the stemmed singular form of a reduplicated plural.\n return firstPart;\n }\n }\n\n return null;\n};\n\n/**\n * Stems Indonesian words\n *\n * @param {string} word The word to stem.\n * @param {Object} morphologyData The object that contains regex-based rules and exception lists for Indonesian stemming.\n *\n * @returns {string} The stem of an Indonesian word.\n */\nexport default function stem(word, morphologyData) {\n // Check words that shouldn't receive any stemming.\n if (morphologyData.stemming.shouldNotBeStemmed.includes(word)) {\n return word;\n }\n\n const stemmedPlural = stemPlural(word, morphologyData);\n\n if (stemmedPlural) {\n return stemmedPlural;\n }\n\n word = stemSingular(word, morphologyData);\n\n return word;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.calculateTotalNumberOfSyllables = calculateTotalNumberOfSyllables;
7
+ exports.checkBeginningsList = checkBeginningsList;
8
+ exports.removeEnding = removeEnding;
9
+ var _index = require("../../../index");
10
+ const {
11
+ buildFormRule,
12
+ createRulesFromArrays
13
+ } = _index.languageProcessing;
14
+ const vowelCharacters = ['a', 'e', 'i', 'o', 'u'];
15
+
16
+ /**
17
+ * Determines if an input character is a vowel.
18
+ *
19
+ * @param {string} character The character to check.
20
+ *
21
+ * @returns {boolean} Whether the input character is an Indonesian vowel.
22
+ */
23
+ function isVowel(character) {
24
+ return vowelCharacters.includes(character);
25
+ }
26
+
27
+ /**
28
+ * Calculates the total number of syllables in the input word.
29
+ *
30
+ * @param {string} word The word to calculate the number of syllables in.
31
+ *
32
+ * @returns {int} The total number of syllables in the word.
33
+ */
34
+ function calculateTotalNumberOfSyllables(word) {
35
+ let result = 0;
36
+ for (let i = 0; i < word.length; i++) {
37
+ if (isVowel(word[i])) {
38
+ result++;
39
+ }
40
+ }
41
+ return result;
42
+ }
43
+
44
+ /**
45
+ * Stems the ending of a word based on some regexRules after checking if the word is in the exception list.
46
+ *
47
+ * @param {string} word The word to stem.
48
+ * @param {Array} regexRules The list of regex-based rules to apply to the word in order to stem it.
49
+ * @param {string[]} exceptions The list of words that should not get the ending removed.
50
+ * @param {Object} morphologyData The Indonesian morphology data file
51
+ *
52
+ * @returns {string} The stemmed word.
53
+ */
54
+ function removeEnding(word, regexRules, exceptions, morphologyData) {
55
+ if (exceptions.includes(word)) {
56
+ return word;
57
+ }
58
+
59
+ // Check words ending in -kan whether they are words whose stem ending in -k that get suffix -an or not.
60
+ const wordsWithKEnding = morphologyData.stemming.doNotStemWords.doNotStemK;
61
+ if (word.endsWith('kan')) {
62
+ const wordWithoutSuffixAn = word.substring(0, word.length - 2);
63
+ // If a word has stem ending -k and gets suffix -an, then only stem -an here.
64
+ if (wordsWithKEnding.includes(wordWithoutSuffixAn)) {
65
+ word = wordWithoutSuffixAn;
66
+ }
67
+ }
68
+ const removePartRegex = createRulesFromArrays(regexRules);
69
+ const withRemovedPart = buildFormRule(word, removePartRegex);
70
+ return withRemovedPart || word;
71
+ }
72
+
73
+ /**
74
+ * Checks if the beginning of the word is present in an exception list.
75
+ *
76
+ * @param {string} word The word to stem.
77
+ * @param {int} prefixLength The length of the prefix to be trimmed before checking in the list.
78
+ * @param {string[]} beginnings The list of word beginnings that should be checked.
79
+ *
80
+ * @returns {boolean} Whether the word is found in the list with beginnings.
81
+ */
82
+ function checkBeginningsList(word, prefixLength, beginnings) {
83
+ const wordWithoutPrefix = word.slice(prefixLength);
84
+ return beginnings.some(beginning => wordWithoutPrefix.startsWith(beginning));
85
+ }
86
+ //# sourceMappingURL=stemHelpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stemHelpers.js","names":["_index","require","buildFormRule","createRulesFromArrays","languageProcessing","vowelCharacters","isVowel","character","includes","calculateTotalNumberOfSyllables","word","result","i","length","removeEnding","regexRules","exceptions","morphologyData","wordsWithKEnding","stemming","doNotStemWords","doNotStemK","endsWith","wordWithoutSuffixAn","substring","removePartRegex","withRemovedPart","checkBeginningsList","prefixLength","beginnings","wordWithoutPrefix","slice","some","beginning","startsWith"],"sources":["../../../../../../src/languageProcessing/languages/id/helpers/internal/stemHelpers.js"],"sourcesContent":["import {languageProcessing} from '../../../index';\nconst {buildFormRule, createRulesFromArrays} = languageProcessing;\n\nconst vowelCharacters = ['a', 'e', 'i', 'o', 'u'];\n\n/**\n * Determines if an input character is a vowel.\n *\n * @param {string} character The character to check.\n *\n * @returns {boolean} Whether the input character is an Indonesian vowel.\n */\nfunction isVowel(character) {\n return vowelCharacters.includes(character);\n}\n\n/**\n * Calculates the total number of syllables in the input word.\n *\n * @param {string} word The word to calculate the number of syllables in.\n *\n * @returns {int} The total number of syllables in the word.\n */\nexport function calculateTotalNumberOfSyllables(word) {\n let result = 0;\n\n for (let i = 0; i < word.length; i++) {\n if (isVowel(word[i])) {\n result++;\n }\n }\n\n return result;\n}\n\n/**\n * Stems the ending of a word based on some regexRules after checking if the word is in the exception list.\n *\n * @param {string} word The word to stem.\n * @param {Array} regexRules The list of regex-based rules to apply to the word in order to stem it.\n * @param {string[]} exceptions The list of words that should not get the ending removed.\n * @param {Object} morphologyData The Indonesian morphology data file\n *\n * @returns {string} The stemmed word.\n */\nexport function removeEnding(word, regexRules, exceptions, morphologyData) {\n if (exceptions.includes(word)) {\n return word;\n }\n\n // Check words ending in -kan whether they are words whose stem ending in -k that get suffix -an or not.\n const wordsWithKEnding = morphologyData.stemming.doNotStemWords.doNotStemK;\n if (word.endsWith('kan')) {\n const wordWithoutSuffixAn = word.substring(0, word.length - 2);\n // If a word has stem ending -k and gets suffix -an, then only stem -an here.\n if (wordsWithKEnding.includes(wordWithoutSuffixAn)) {\n word = wordWithoutSuffixAn;\n }\n }\n\n const removePartRegex = createRulesFromArrays(regexRules);\n const withRemovedPart = buildFormRule(word, removePartRegex);\n return withRemovedPart || word;\n}\n\n/**\n * Checks if the beginning of the word is present in an exception list.\n *\n * @param {string} word The word to stem.\n * @param {int} prefixLength The length of the prefix to be trimmed before checking in the list.\n * @param {string[]} beginnings The list of word beginnings that should be checked.\n *\n * @returns {boolean} Whether the word is found in the list with beginnings.\n */\nexport function checkBeginningsList(word, prefixLength, beginnings) {\n const wordWithoutPrefix = word.slice(prefixLength);\n return beginnings.some(beginning => wordWithoutPrefix.startsWith(beginning));\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,MAAM;EAACC,aAAa;EAAEC;AAAqB,CAAC,GAAGC,yBAAkB;AAEjE,MAAMC,eAAe,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;;AAEjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,OAAOA,CAACC,SAAS,EAAE;EAC1B,OAAOF,eAAe,CAACG,QAAQ,CAACD,SAAS,CAAC;AAC5C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASE,+BAA+BA,CAACC,IAAI,EAAE;EACpD,IAAIC,MAAM,GAAG,CAAC;EAEd,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,IAAI,CAACG,MAAM,EAAED,CAAC,EAAE,EAAE;IACpC,IAAIN,OAAO,CAACI,IAAI,CAACE,CAAC,CAAC,CAAC,EAAE;MACpBD,MAAM,EAAE;IACV;EACF;EAEA,OAAOA,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,YAAYA,CAACJ,IAAI,EAAEK,UAAU,EAAEC,UAAU,EAAEC,cAAc,EAAE;EACzE,IAAID,UAAU,CAACR,QAAQ,CAACE,IAAI,CAAC,EAAE;IAC7B,OAAOA,IAAI;EACb;;EAEA;EACA,MAAMQ,gBAAgB,GAAGD,cAAc,CAACE,QAAQ,CAACC,cAAc,CAACC,UAAU;EAC1E,IAAIX,IAAI,CAACY,QAAQ,CAAC,KAAK,CAAC,EAAE;IACxB,MAAMC,mBAAmB,GAAGb,IAAI,CAACc,SAAS,CAAC,CAAC,EAAEd,IAAI,CAACG,MAAM,GAAG,CAAC,CAAC;IAC9D;IACA,IAAIK,gBAAgB,CAACV,QAAQ,CAACe,mBAAmB,CAAC,EAAE;MAClDb,IAAI,GAAGa,mBAAmB;IAC5B;EACF;EAEA,MAAME,eAAe,GAAGtB,qBAAqB,CAACY,UAAU,CAAC;EACzD,MAAMW,eAAe,GAAGxB,aAAa,CAACQ,IAAI,EAAEe,eAAe,CAAC;EAC5D,OAAOC,eAAe,IAAIhB,IAAI;AAChC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASiB,mBAAmBA,CAACjB,IAAI,EAAEkB,YAAY,EAAEC,UAAU,EAAE;EAClE,MAAMC,iBAAiB,GAAGpB,IAAI,CAACqB,KAAK,CAACH,YAAY,CAAC;EAClD,OAAOC,UAAU,CAACG,IAAI,CAACC,SAAS,IAAIH,iBAAiB,CAACI,UAAU,CAACD,SAAS,CAAC,CAAC;AAC9E","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = isPassiveSentence;
7
+ var _index = require("../../../index");
8
+ var _nonPassiveVerbsStartingDi = _interopRequireDefault(require("../config/internal/nonPassiveVerbsStartingDi"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const {
11
+ getWords
12
+ } = _index.languageProcessing;
13
+ const passivePrefix = 'di';
14
+
15
+ /**
16
+ * Checks the passed sentence to see if it contains Indonesian passive verb-forms.
17
+ *
18
+ * @param {string} sentence The sentence to match against.
19
+ *
20
+ * @returns {Boolean} Whether the sentence contains Indonesian passive voice.
21
+ */
22
+ function isPassiveSentence(sentence) {
23
+ const words = getWords(sentence.toLowerCase());
24
+ let matchedPassives = words.filter(word => word.length > 4);
25
+ matchedPassives = matchedPassives.filter(word => word.startsWith(passivePrefix));
26
+ if (matchedPassives.length === 0) {
27
+ return false;
28
+ }
29
+
30
+ // Check exception list.
31
+ for (const nonPassive of _nonPassiveVerbsStartingDi.default) {
32
+ matchedPassives = matchedPassives.filter(word => !word.startsWith(nonPassive));
33
+ }
34
+
35
+ // Check direct precedence exceptions.
36
+ matchedPassives = matchedPassives.filter(function (matchedPassive) {
37
+ let matchedPassivesShouldStay = true;
38
+ const passiveIndex = words.indexOf(matchedPassive);
39
+ const wordPrecedingPassive = words[passiveIndex - 1];
40
+ if (wordPrecedingPassive === 'untuk') {
41
+ matchedPassivesShouldStay = false;
42
+ }
43
+ return matchedPassivesShouldStay;
44
+ });
45
+ return matchedPassives.length !== 0;
46
+ }
47
+ //# sourceMappingURL=isPassiveSentence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isPassiveSentence.js","names":["_index","require","_nonPassiveVerbsStartingDi","_interopRequireDefault","e","__esModule","default","getWords","languageProcessing","passivePrefix","isPassiveSentence","sentence","words","toLowerCase","matchedPassives","filter","word","length","startsWith","nonPassive","nonPassives","matchedPassive","matchedPassivesShouldStay","passiveIndex","indexOf","wordPrecedingPassive"],"sources":["../../../../../src/languageProcessing/languages/id/helpers/isPassiveSentence.js"],"sourcesContent":["import {languageProcessing} from '../../../index';\nconst {getWords} = languageProcessing;\n\nimport nonPassives from '../config/internal/nonPassiveVerbsStartingDi';\nconst passivePrefix = 'di';\n\n/**\n * Checks the passed sentence to see if it contains Indonesian passive verb-forms.\n *\n * @param {string} sentence The sentence to match against.\n *\n * @returns {Boolean} Whether the sentence contains Indonesian passive voice.\n */\nexport default function isPassiveSentence(sentence) {\n const words = getWords(sentence.toLowerCase());\n let matchedPassives = words.filter(word => word.length > 4);\n matchedPassives = matchedPassives.filter(word => word.startsWith(passivePrefix));\n if (matchedPassives.length === 0) {\n return false;\n }\n\n // Check exception list.\n for (const nonPassive of nonPassives) {\n matchedPassives = matchedPassives.filter(word => !word.startsWith(nonPassive));\n }\n\n // Check direct precedence exceptions.\n matchedPassives = matchedPassives.filter(function(matchedPassive) {\n let matchedPassivesShouldStay = true;\n const passiveIndex = words.indexOf(matchedPassive);\n const wordPrecedingPassive = words[passiveIndex - 1];\n if (wordPrecedingPassive === 'untuk') {\n matchedPassivesShouldStay = false;\n }\n return matchedPassivesShouldStay;\n });\n\n return matchedPassives.length !== 0;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAGA,IAAAC,0BAAA,GAAAC,sBAAA,CAAAF,OAAA;AAAuE,SAAAE,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAFvE,MAAM;EAACG;AAAQ,CAAC,GAAGC,yBAAkB;AAGrC,MAAMC,aAAa,GAAG,IAAI;;AAE1B;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASC,iBAAiBA,CAACC,QAAQ,EAAE;EAClD,MAAMC,KAAK,GAAGL,QAAQ,CAACI,QAAQ,CAACE,WAAW,CAAC,CAAC,CAAC;EAC9C,IAAIC,eAAe,GAAGF,KAAK,CAACG,MAAM,CAACC,IAAI,IAAIA,IAAI,CAACC,MAAM,GAAG,CAAC,CAAC;EAC3DH,eAAe,GAAGA,eAAe,CAACC,MAAM,CAACC,IAAI,IAAIA,IAAI,CAACE,UAAU,CAACT,aAAa,CAAC,CAAC;EAChF,IAAIK,eAAe,CAACG,MAAM,KAAK,CAAC,EAAE;IAChC,OAAO,KAAK;EACd;;EAEA;EACA,KAAK,MAAME,UAAU,IAAIC,kCAAW,EAAE;IACpCN,eAAe,GAAGA,eAAe,CAACC,MAAM,CAACC,IAAI,IAAI,CAACA,IAAI,CAACE,UAAU,CAACC,UAAU,CAAC,CAAC;EAChF;;EAEA;EACAL,eAAe,GAAGA,eAAe,CAACC,MAAM,CAAC,UAASM,cAAc,EAAE;IAChE,IAAIC,yBAAyB,GAAG,IAAI;IACpC,MAAMC,YAAY,GAAGX,KAAK,CAACY,OAAO,CAACH,cAAc,CAAC;IAClD,MAAMI,oBAAoB,GAAGb,KAAK,CAACW,YAAY,GAAG,CAAC,CAAC;IACpD,IAAIE,oBAAoB,KAAK,OAAO,EAAE;MACpCH,yBAAyB,GAAG,KAAK;IACnC;IACA,OAAOA,yBAAyB;EAClC,CAAC,CAAC;EAEF,OAAOR,eAAe,CAACG,MAAM,KAAK,CAAC;AACrC","ignoreList":[]}