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