axyseo 2.0.0-alpha.0.0.4 → 2.0.0-alpha.0.0.6
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/package.json +5 -2
- package/.browserslistrc +0 -1
- package/.gitattributes +0 -1
- package/babel.config.js +0 -3
- package/eslint.config.mjs +0 -119
- package/src/bundledPlugins/index.js +0 -5
- package/src/bundledPlugins/previouslyUsedKeywords.js +0 -192
- package/src/config/diacritics.js +0 -106
- package/src/config/getTransliterations.js +0 -1447
- package/src/config/transliterationsWPstyle.js +0 -774
- package/src/config/wordBoundaries.js +0 -23
- package/src/config/wordBoundariesWithoutPunctuation.js +0 -9
- package/src/const/analysis.js +0 -41
- package/src/errors/invalidType.js +0 -14
- package/src/errors/missingArgument.js +0 -14
- package/src/helpers/createMeasurementElement.js +0 -40
- package/src/helpers/domManipulation.js +0 -65
- package/src/helpers/errors.js +0 -26
- package/src/helpers/factory.js +0 -219
- package/src/helpers/formatNumber.js +0 -12
- package/src/helpers/formatString.js +0 -33
- package/src/helpers/getLanguagesWithWordComplexity.js +0 -8
- package/src/helpers/getLanguagesWithWordFormSupport.js +0 -11
- package/src/helpers/getWordComplexityConfig.js +0 -20
- package/src/helpers/getWordComplexityHelper.js +0 -20
- package/src/helpers/htmlEntities.js +0 -41
- package/src/helpers/includesAny.js +0 -19
- package/src/helpers/index.js +0 -127
- package/src/helpers/shortlinker/Shortlinker.js +0 -75
- package/src/helpers/shortlinker/index.js +0 -1
- package/src/helpers/shortlinker/singleton.js +0 -68
- package/src/helpers/types.js +0 -34
- package/src/index.js +0 -60
- package/src/languageProcessing/AbstractResearcher.js +0 -366
- package/src/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +0 -125
- package/src/languageProcessing/helpers/html/getFieldsToMark.js +0 -29
- package/src/languageProcessing/helpers/html/getSubheadingTexts.js +0 -47
- package/src/languageProcessing/helpers/html/getSubheadings.js +0 -95
- package/src/languageProcessing/helpers/html/html.js +0 -176
- package/src/languageProcessing/helpers/html/htmlParser.js +0 -145
- package/src/languageProcessing/helpers/html/matchParagraphs.js +0 -62
- package/src/languageProcessing/helpers/html/normalizeHTML.js +0 -16
- package/src/languageProcessing/helpers/image/getAltAttribute.js +0 -20
- package/src/languageProcessing/helpers/image/getImagesInTree.js +0 -16
- package/src/languageProcessing/helpers/image/imageInText.js +0 -19
- package/src/languageProcessing/helpers/index.js +0 -12
- package/src/languageProcessing/helpers/language/getLanguage.js +0 -9
- package/src/languageProcessing/helpers/link/checkNofollow.js +0 -38
- package/src/languageProcessing/helpers/link/getAnchorsFromText.js +0 -32
- package/src/languageProcessing/helpers/link/getLinkType.js +0 -32
- package/src/languageProcessing/helpers/match/findKeywordFormsInString.js +0 -101
- package/src/languageProcessing/helpers/match/isDoubleQuoted.js +0 -13
- package/src/languageProcessing/helpers/match/matchTextWithArray.js +0 -36
- package/src/languageProcessing/helpers/match/matchTextWithTransliteration.js +0 -58
- package/src/languageProcessing/helpers/match/matchTextWithWord.js +0 -45
- package/src/languageProcessing/helpers/match/matchWordFormsWithSentence.js +0 -164
- package/src/languageProcessing/helpers/match/processExactMatchRequest.js +0 -20
- package/src/languageProcessing/helpers/morphology/baseStemmer.js +0 -11
- package/src/languageProcessing/helpers/morphology/buildFormRule.js +0 -19
- package/src/languageProcessing/helpers/morphology/buildTopicStems.js +0 -169
- package/src/languageProcessing/helpers/morphology/createRulesFromArrays.js +0 -45
- package/src/languageProcessing/helpers/morphology/exceptionListHelpers.js +0 -65
- package/src/languageProcessing/helpers/morphology/findMatchingEndingInArray.js +0 -24
- package/src/languageProcessing/helpers/morphology/flattenSortLength.js +0 -14
- package/src/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +0 -39
- package/src/languageProcessing/helpers/morphology/regexHelpers.js +0 -44
- package/src/languageProcessing/helpers/morphology/stemHelpers.js +0 -38
- package/src/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js +0 -31
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js +0 -36
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js +0 -113
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js +0 -45
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js +0 -231
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js +0 -20
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js +0 -23
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js +0 -40
- package/src/languageProcessing/helpers/prominentWords/determineProminentWords.js +0 -238
- package/src/languageProcessing/helpers/regex/createRegexFromArray.js +0 -35
- package/src/languageProcessing/helpers/regex/createRegexFromDoubleArray.js +0 -34
- package/src/languageProcessing/helpers/regex/createWordRegex.js +0 -30
- package/src/languageProcessing/helpers/regex/matchStringWithRegex.js +0 -19
- package/src/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js +0 -14
- package/src/languageProcessing/helpers/sanitize/doubleQuotes.js +0 -12
- package/src/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js +0 -131
- package/src/languageProcessing/helpers/sanitize/mergeListItems.js +0 -24
- package/src/languageProcessing/helpers/sanitize/parseSynonyms.js +0 -20
- package/src/languageProcessing/helpers/sanitize/quotes.js +0 -46
- package/src/languageProcessing/helpers/sanitize/removeEmailAddresses.js +0 -12
- package/src/languageProcessing/helpers/sanitize/removePunctuation.js +0 -64
- package/src/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js +0 -18
- package/src/languageProcessing/helpers/sanitize/removeSentenceTerminators.js +0 -13
- package/src/languageProcessing/helpers/sanitize/removeURLs.js +0 -13
- package/src/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js +0 -11
- package/src/languageProcessing/helpers/sanitize/sanitizeString.js +0 -18
- package/src/languageProcessing/helpers/sanitize/stripHTMLTags.js +0 -57
- package/src/languageProcessing/helpers/sanitize/stripNonTextTags.js +0 -15
- package/src/languageProcessing/helpers/sanitize/stripNumbers.js +0 -21
- package/src/languageProcessing/helpers/sanitize/stripSpaces.js +0 -23
- package/src/languageProcessing/helpers/sanitize/stripWordBoundaries.js +0 -65
- package/src/languageProcessing/helpers/sanitize/unifyWhitespace.js +0 -61
- package/src/languageProcessing/helpers/sentence/SentenceTokenizer.js +0 -640
- package/src/languageProcessing/helpers/sentence/countSentences.js +0 -20
- package/src/languageProcessing/helpers/sentence/getSentences.js +0 -65
- package/src/languageProcessing/helpers/sentence/getSentencesFromTree.js +0 -55
- package/src/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js +0 -28
- package/src/languageProcessing/helpers/sentence/sentencesLength.js +0 -31
- package/src/languageProcessing/helpers/syllables/DeviationFragment.js +0 -112
- package/src/languageProcessing/helpers/syllables/countSyllables.js +0 -182
- package/src/languageProcessing/helpers/syllables/syllableCountIterator.js +0 -56
- package/src/languageProcessing/helpers/syllables/syllableCountStep.js +0 -68
- package/src/languageProcessing/helpers/transform/transformWordsWithHyphens.js +0 -17
- package/src/languageProcessing/helpers/transliterate/replaceDiacritics.js +0 -22
- package/src/languageProcessing/helpers/transliterate/specialCharacterMappings.js +0 -214
- package/src/languageProcessing/helpers/transliterate/transliterate.js +0 -20
- package/src/languageProcessing/helpers/transliterate/transliterateWPstyle.js +0 -21
- package/src/languageProcessing/helpers/url/parseSlug.js +0 -10
- package/src/languageProcessing/helpers/url/url.js +0 -172
- package/src/languageProcessing/helpers/word/addWordboundary.js +0 -37
- package/src/languageProcessing/helpers/word/areWordsInSentence.js +0 -16
- package/src/languageProcessing/helpers/word/countMetaDescriptionLength.js +0 -18
- package/src/languageProcessing/helpers/word/countWords.js +0 -14
- package/src/languageProcessing/helpers/word/createPunctuationTokens.js +0 -42
- package/src/languageProcessing/helpers/word/filterWordsFromArray.js +0 -15
- package/src/languageProcessing/helpers/word/followsIndex.js +0 -25
- package/src/languageProcessing/helpers/word/getAllWordsFromTree.js +0 -23
- package/src/languageProcessing/helpers/word/getWords.js +0 -43
- package/src/languageProcessing/helpers/word/includesIndex.js +0 -30
- package/src/languageProcessing/helpers/word/indices.js +0 -146
- package/src/languageProcessing/helpers/word/markWordsInSentences.js +0 -173
- package/src/languageProcessing/helpers/word/matchWordInSentence.js +0 -61
- package/src/languageProcessing/helpers/word/splitIntoTokens.js +0 -46
- package/src/languageProcessing/index.js +0 -91
- package/src/languageProcessing/languages/_default/Researcher.js +0 -34
- package/src/languageProcessing/languages/_default/helpers/getStemmer.js +0 -11
- package/src/languageProcessing/languages/ar/Researcher.js +0 -46
- package/src/languageProcessing/languages/ar/config/firstWordExceptions.js +0 -14
- package/src/languageProcessing/languages/ar/config/functionWords.js +0 -329
- package/src/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js +0 -570
- package/src/languageProcessing/languages/ar/config/prefixedFunctionWords.js +0 -5
- package/src/languageProcessing/languages/ar/config/transitionWords.js +0 -19
- package/src/languageProcessing/languages/ar/config/twoPartTransitionWords.js +0 -7
- package/src/languageProcessing/languages/ar/helpers/createBasicWordForms.js +0 -32
- package/src/languageProcessing/languages/ar/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/ar/helpers/internal/stem.js +0 -632
- package/src/languageProcessing/languages/ar/helpers/isPassiveSentence.js +0 -33
- package/src/languageProcessing/languages/ca/Researcher.js +0 -43
- package/src/languageProcessing/languages/ca/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/ca/config/transitionWords.js +0 -31
- package/src/languageProcessing/languages/ca/config/twoPartTransitionWords.js +0 -7
- package/src/languageProcessing/languages/ca/helpers/getStemmer.js +0 -11
- package/src/languageProcessing/languages/cs/Researcher.js +0 -44
- package/src/languageProcessing/languages/cs/config/firstWordExceptions.js +0 -15
- package/src/languageProcessing/languages/cs/config/functionWords.js +0 -121
- package/src/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js +0 -38
- package/src/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js +0 -54
- package/src/languageProcessing/languages/cs/config/stopWords.js +0 -42
- package/src/languageProcessing/languages/cs/config/transitionWords.js +0 -26
- package/src/languageProcessing/languages/cs/config/twoPartTransitionWords.js +0 -8
- package/src/languageProcessing/languages/cs/helpers/getClauses.js +0 -26
- package/src/languageProcessing/languages/cs/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/cs/helpers/internal/getParticiples.js +0 -16
- package/src/languageProcessing/languages/cs/helpers/internal/stem.js +0 -499
- package/src/languageProcessing/languages/cs/values/Clause.js +0 -34
- package/src/languageProcessing/languages/de/Researcher.js +0 -52
- package/src/languageProcessing/languages/de/config/firstWordExceptions.js +0 -17
- package/src/languageProcessing/languages/de/config/functionWords.js +0 -303
- package/src/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js +0 -2231
- package/src/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js +0 -96
- package/src/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js +0 -368
- package/src/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js +0 -72
- package/src/languageProcessing/languages/de/config/keyphraseLength.js +0 -11
- package/src/languageProcessing/languages/de/config/stopWords.js +0 -67
- package/src/languageProcessing/languages/de/config/syllables.json +0 -460
- package/src/languageProcessing/languages/de/config/transitionWords.js +0 -31
- package/src/languageProcessing/languages/de/config/twoPartTransitionWords.js +0 -12
- package/src/languageProcessing/languages/de/config/wordComplexity.js +0 -4
- package/src/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +0 -18
- package/src/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js +0 -40
- package/src/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js +0 -15
- package/src/languageProcessing/languages/de/helpers/getClauses.js +0 -25
- package/src/languageProcessing/languages/de/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js +0 -31
- package/src/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js +0 -128
- package/src/languageProcessing/languages/de/helpers/internal/determineStem.js +0 -128
- package/src/languageProcessing/languages/de/helpers/internal/getParticiples.js +0 -40
- package/src/languageProcessing/languages/de/helpers/internal/stem.js +0 -215
- package/src/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js +0 -28
- package/src/languageProcessing/languages/de/values/Clause.js +0 -85
- package/src/languageProcessing/languages/el/Researcher.js +0 -46
- package/src/languageProcessing/languages/el/config/firstWordExceptions.js +0 -47
- package/src/languageProcessing/languages/el/config/functionWords.js +0 -116
- package/src/languageProcessing/languages/el/config/internal/auxiliaries.js +0 -19
- package/src/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js +0 -87
- package/src/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js +0 -138
- package/src/languageProcessing/languages/el/config/stopWords.js +0 -854
- package/src/languageProcessing/languages/el/config/transitionWords.js +0 -26
- package/src/languageProcessing/languages/el/config/twoPartTransitionWords.js +0 -10
- package/src/languageProcessing/languages/el/helpers/getClauses.js +0 -25
- package/src/languageProcessing/languages/el/helpers/getStemmer.js +0 -21
- package/src/languageProcessing/languages/el/helpers/internal/getParticiples.js +0 -20
- package/src/languageProcessing/languages/el/helpers/internal/stem.js +0 -368
- package/src/languageProcessing/languages/el/helpers/isPassiveSentence.js +0 -38
- package/src/languageProcessing/languages/el/values/Clause.js +0 -37
- package/src/languageProcessing/languages/en/Researcher.js +0 -46
- package/src/languageProcessing/languages/en/config/abbreviations.js +0 -55
- package/src/languageProcessing/languages/en/config/firstWordExceptions.js +0 -14
- package/src/languageProcessing/languages/en/config/functionWords.js +0 -186
- package/src/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js +0 -44
- package/src/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js +0 -354
- package/src/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js +0 -3047
- package/src/languageProcessing/languages/en/config/regularParticiplesRegex.js +0 -5
- package/src/languageProcessing/languages/en/config/stopWords.js +0 -52
- package/src/languageProcessing/languages/en/config/syllables.json +0 -86
- package/src/languageProcessing/languages/en/config/transitionWords.js +0 -48
- package/src/languageProcessing/languages/en/config/twoPartTransitionWords.js +0 -7
- package/src/languageProcessing/languages/en/config/wordComplexity.js +0 -5
- package/src/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +0 -18
- package/src/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js +0 -43
- package/src/languageProcessing/languages/en/helpers/getClauses.js +0 -49
- package/src/languageProcessing/languages/en/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/en/helpers/internal/determineStem.js +0 -178
- package/src/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +0 -162
- package/src/languageProcessing/languages/en/helpers/internal/getParticiples.js +0 -25
- package/src/languageProcessing/languages/en/helpers/internal/getVerbStem.js +0 -237
- package/src/languageProcessing/languages/en/values/Clause.js +0 -68
- package/src/languageProcessing/languages/es/Researcher.js +0 -48
- package/src/languageProcessing/languages/es/config/firstWordExceptions.js +0 -16
- package/src/languageProcessing/languages/es/config/functionWords.js +0 -321
- package/src/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js +0 -60
- package/src/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js +0 -7327
- package/src/languageProcessing/languages/es/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/es/config/stopWords.js +0 -33
- package/src/languageProcessing/languages/es/config/syllables.json +0 -176
- package/src/languageProcessing/languages/es/config/transitionWords.js +0 -40
- package/src/languageProcessing/languages/es/config/twoPartTransitionWords.js +0 -10
- package/src/languageProcessing/languages/es/config/wordComplexity.js +0 -4
- package/src/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +0 -18
- package/src/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js +0 -56
- package/src/languageProcessing/languages/es/helpers/getClauses.js +0 -29
- package/src/languageProcessing/languages/es/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +0 -41
- package/src/languageProcessing/languages/es/helpers/internal/getParticiples.js +0 -35
- package/src/languageProcessing/languages/es/helpers/internal/stem.js +0 -793
- package/src/languageProcessing/languages/es/values/Clause.js +0 -47
- package/src/languageProcessing/languages/fa/Researcher.js +0 -47
- package/src/languageProcessing/languages/fa/config/firstWordExceptions.js +0 -12
- package/src/languageProcessing/languages/fa/config/functionWords.js +0 -122
- package/src/languageProcessing/languages/fa/config/internal/participles.js +0 -1429
- package/src/languageProcessing/languages/fa/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/fa/config/transitionWords.js +0 -20
- package/src/languageProcessing/languages/fa/config/twoPartTransitionWords.js +0 -9
- package/src/languageProcessing/languages/fa/helpers/createBasicWordForms.js +0 -97
- package/src/languageProcessing/languages/fa/helpers/getStemmer.js +0 -13
- package/src/languageProcessing/languages/fa/helpers/isPassiveSentence.js +0 -14
- package/src/languageProcessing/languages/fr/Researcher.js +0 -46
- package/src/languageProcessing/languages/fr/config/firstWordExceptions.js +0 -16
- package/src/languageProcessing/languages/fr/config/functionWords.js +0 -281
- package/src/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js +0 -1510
- package/src/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js +0 -108
- package/src/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js +0 -565
- package/src/languageProcessing/languages/fr/config/stopWords.js +0 -119
- package/src/languageProcessing/languages/fr/config/syllables.json +0 -1426
- package/src/languageProcessing/languages/fr/config/transitionWords.js +0 -59
- package/src/languageProcessing/languages/fr/config/twoPartTransitionWords.js +0 -15
- package/src/languageProcessing/languages/fr/config/wordComplexity.js +0 -4
- package/src/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +0 -18
- package/src/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js +0 -67
- package/src/languageProcessing/languages/fr/helpers/getClauses.js +0 -34
- package/src/languageProcessing/languages/fr/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/fr/helpers/internal/getParticiples.js +0 -72
- package/src/languageProcessing/languages/fr/helpers/internal/stem.js +0 -633
- package/src/languageProcessing/languages/fr/values/Clause.js +0 -96
- package/src/languageProcessing/languages/he/Researcher.js +0 -50
- package/src/languageProcessing/languages/he/config/firstWordExceptions.js +0 -13
- package/src/languageProcessing/languages/he/config/functionWords.js +0 -564
- package/src/languageProcessing/languages/he/config/internal/regularRootsHufal.js +0 -186
- package/src/languageProcessing/languages/he/config/internal/regularRootsNifal.js +0 -195
- package/src/languageProcessing/languages/he/config/internal/regularRootsPual.js +0 -168
- package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js +0 -188
- package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js +0 -197
- package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js +0 -170
- package/src/languageProcessing/languages/he/config/prefixedFunctionWords.js +0 -2
- package/src/languageProcessing/languages/he/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/he/config/transitionWords.js +0 -28
- package/src/languageProcessing/languages/he/config/twoPartTransitionWords.js +0 -8
- package/src/languageProcessing/languages/he/helpers/createBasicWordForms.js +0 -33
- package/src/languageProcessing/languages/he/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/he/helpers/internal/stem.js +0 -52
- package/src/languageProcessing/languages/he/helpers/isPassiveSentence.js +0 -96
- package/src/languageProcessing/languages/he/helpers/stem.js +0 -52
- package/src/languageProcessing/languages/hu/Researcher.js +0 -48
- package/src/languageProcessing/languages/hu/config/firstWordExceptions.js +0 -31
- package/src/languageProcessing/languages/hu/config/functionWords.js +0 -284
- package/src/languageProcessing/languages/hu/config/internal/auxiliaries.js +0 -97
- package/src/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js +0 -125
- package/src/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js +0 -265
- package/src/languageProcessing/languages/hu/config/internal/odikVerbs.js +0 -273
- package/src/languageProcessing/languages/hu/config/internal/participles.js +0 -412
- package/src/languageProcessing/languages/hu/config/stopWords.js +0 -213
- package/src/languageProcessing/languages/hu/config/transitionWords.js +0 -42
- package/src/languageProcessing/languages/hu/config/twoPartTransitionWords.js +0 -34
- package/src/languageProcessing/languages/hu/helpers/getClauses.js +0 -25
- package/src/languageProcessing/languages/hu/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/hu/helpers/internal/getParticiples.js +0 -21
- package/src/languageProcessing/languages/hu/helpers/internal/stem.js +0 -389
- package/src/languageProcessing/languages/hu/helpers/isPassiveSentence.js +0 -54
- package/src/languageProcessing/languages/hu/values/Clause.js +0 -41
- package/src/languageProcessing/languages/id/Researcher.js +0 -46
- package/src/languageProcessing/languages/id/config/firstWordExceptions.js +0 -13
- package/src/languageProcessing/languages/id/config/functionWords.js +0 -202
- package/src/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js +0 -215
- package/src/languageProcessing/languages/id/config/transitionWords.js +0 -62
- package/src/languageProcessing/languages/id/config/twoPartTransitionWords.js +0 -13
- package/src/languageProcessing/languages/id/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/id/helpers/internal/stem.js +0 -462
- package/src/languageProcessing/languages/id/helpers/internal/stemHelpers.js +0 -78
- package/src/languageProcessing/languages/id/helpers/isPassiveSentence.js +0 -39
- package/src/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js +0 -47
- package/src/languageProcessing/languages/it/Researcher.js +0 -48
- package/src/languageProcessing/languages/it/config/firstWordExceptions.js +0 -17
- package/src/languageProcessing/languages/it/config/functionWords.js +0 -277
- package/src/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js +0 -98
- package/src/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js +0 -7197
- package/src/languageProcessing/languages/it/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/it/config/stopWords.js +0 -57
- package/src/languageProcessing/languages/it/config/syllables.json +0 -573
- package/src/languageProcessing/languages/it/config/transitionWords.js +0 -104
- package/src/languageProcessing/languages/it/config/twoPartTransitionWords.js +0 -9
- package/src/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js +0 -15
- package/src/languageProcessing/languages/it/helpers/getClauses.js +0 -32
- package/src/languageProcessing/languages/it/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/it/helpers/internal/getParticiples.js +0 -34
- package/src/languageProcessing/languages/it/helpers/internal/stem.js +0 -436
- package/src/languageProcessing/languages/it/values/Clause.js +0 -47
- package/src/languageProcessing/languages/ja/Researcher.js +0 -86
- package/src/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js +0 -4
- package/src/languageProcessing/languages/ja/config/firstWordExceptions.js +0 -8
- package/src/languageProcessing/languages/ja/config/functionWords.js +0 -563
- package/src/languageProcessing/languages/ja/config/keyphraseLength.js +0 -16
- package/src/languageProcessing/languages/ja/config/metaDescriptionLength.js +0 -4
- package/src/languageProcessing/languages/ja/config/paragraphLength.js +0 -10
- package/src/languageProcessing/languages/ja/config/sentenceLength.js +0 -4
- package/src/languageProcessing/languages/ja/config/subheadingsTooLong.js +0 -18
- package/src/languageProcessing/languages/ja/config/textLength.js +0 -47
- package/src/languageProcessing/languages/ja/config/topicLength.js +0 -5
- package/src/languageProcessing/languages/ja/config/transitionWords.js +0 -354
- package/src/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js +0 -98
- package/src/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js +0 -19
- package/src/languageProcessing/languages/ja/customResearches/getWordForms.js +0 -50
- package/src/languageProcessing/languages/ja/customResearches/textLength.js +0 -24
- package/src/languageProcessing/languages/ja/helpers/countCharacters.js +0 -19
- package/src/languageProcessing/languages/ja/helpers/customGetStemmer.js +0 -21
- package/src/languageProcessing/languages/ja/helpers/getContentWords.js +0 -21
- package/src/languageProcessing/languages/ja/helpers/getWords.js +0 -31
- package/src/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js +0 -102
- package/src/languageProcessing/languages/ja/helpers/internal/createWordForms.js +0 -68
- package/src/languageProcessing/languages/ja/helpers/internal/determineStem.js +0 -17
- package/src/languageProcessing/languages/ja/helpers/matchTextWithWord.js +0 -53
- package/src/languageProcessing/languages/ja/helpers/matchTransitionWords.js +0 -25
- package/src/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js +0 -28
- package/src/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js +0 -20
- package/src/languageProcessing/languages/ja/helpers/wordsCharacterCount.js +0 -13
- package/src/languageProcessing/languages/nb/Researcher.js +0 -45
- package/src/languageProcessing/languages/nb/config/firstWordExceptions.js +0 -12
- package/src/languageProcessing/languages/nb/config/functionWords.js +0 -106
- package/src/languageProcessing/languages/nb/config/internal/participles.js +0 -3127
- package/src/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js +0 -15
- package/src/languageProcessing/languages/nb/config/stopWords.js +0 -39
- package/src/languageProcessing/languages/nb/config/transitionWords.js +0 -21
- package/src/languageProcessing/languages/nb/config/twoPartTransitionWords.js +0 -10
- package/src/languageProcessing/languages/nb/helpers/getClauses.js +0 -28
- package/src/languageProcessing/languages/nb/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/nb/helpers/internal/getParticiples.js +0 -24
- package/src/languageProcessing/languages/nb/helpers/internal/stem.js +0 -133
- package/src/languageProcessing/languages/nb/values/Clause.js +0 -43
- package/src/languageProcessing/languages/nl/Researcher.js +0 -48
- package/src/languageProcessing/languages/nl/config/firstWordExceptions.js +0 -15
- package/src/languageProcessing/languages/nl/config/functionWords.js +0 -233
- package/src/languageProcessing/languages/nl/config/internal/nonParticiples.js +0 -2515
- package/src/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js +0 -13
- package/src/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js +0 -474
- package/src/languageProcessing/languages/nl/config/keyphraseLength.js +0 -10
- package/src/languageProcessing/languages/nl/config/stopWords.js +0 -35
- package/src/languageProcessing/languages/nl/config/syllables.json +0 -343
- package/src/languageProcessing/languages/nl/config/transitionWords.js +0 -22
- package/src/languageProcessing/languages/nl/config/twoPartTransitionWords.js +0 -8
- package/src/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js +0 -15
- package/src/languageProcessing/languages/nl/helpers/getClauses.js +0 -25
- package/src/languageProcessing/languages/nl/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +0 -128
- package/src/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +0 -324
- package/src/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js +0 -164
- package/src/languageProcessing/languages/nl/helpers/internal/determineStem.js +0 -133
- package/src/languageProcessing/languages/nl/helpers/internal/getParticiples.js +0 -25
- package/src/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +0 -183
- package/src/languageProcessing/languages/nl/helpers/internal/stem.js +0 -146
- package/src/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +0 -109
- package/src/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +0 -65
- package/src/languageProcessing/languages/nl/values/Clause.js +0 -62
- package/src/languageProcessing/languages/pl/Researcher.js +0 -47
- package/src/languageProcessing/languages/pl/config/firstWordExceptions.js +0 -12
- package/src/languageProcessing/languages/pl/config/functionWords.js +0 -421
- package/src/languageProcessing/languages/pl/config/internal/auxiliaries.js +0 -85
- package/src/languageProcessing/languages/pl/config/internal/participles.js +0 -26433
- package/src/languageProcessing/languages/pl/config/sentenceLength.js +0 -10
- package/src/languageProcessing/languages/pl/config/stopWords.js +0 -36
- package/src/languageProcessing/languages/pl/config/transitionWords.js +0 -42
- package/src/languageProcessing/languages/pl/config/twoPartTransitionWords.js +0 -8
- package/src/languageProcessing/languages/pl/helpers/getClauses.js +0 -25
- package/src/languageProcessing/languages/pl/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/pl/helpers/internal/getParticiples.js +0 -18
- package/src/languageProcessing/languages/pl/helpers/internal/stem.js +0 -161
- package/src/languageProcessing/languages/pl/values/Clause.js +0 -53
- package/src/languageProcessing/languages/pt/Researcher.js +0 -48
- package/src/languageProcessing/languages/pt/config/firstWordExceptions.js +0 -15
- package/src/languageProcessing/languages/pt/config/functionWords.js +0 -226
- package/src/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js +0 -66
- package/src/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js +0 -4088
- package/src/languageProcessing/languages/pt/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/pt/config/stopWords.js +0 -50
- package/src/languageProcessing/languages/pt/config/syllables.json +0 -38
- package/src/languageProcessing/languages/pt/config/transitionWords.js +0 -34
- package/src/languageProcessing/languages/pt/config/twoPartTransitionWords.js +0 -9
- package/src/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js +0 -15
- package/src/languageProcessing/languages/pt/helpers/getClauses.js +0 -29
- package/src/languageProcessing/languages/pt/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/pt/helpers/internal/getParticiples.js +0 -35
- package/src/languageProcessing/languages/pt/helpers/internal/stem.js +0 -319
- package/src/languageProcessing/languages/pt/values/Clause.js +0 -43
- package/src/languageProcessing/languages/ru/Researcher.js +0 -48
- package/src/languageProcessing/languages/ru/config/firstWordExceptions.js +0 -14
- package/src/languageProcessing/languages/ru/config/fleschReadingEaseScores.js +0 -20
- package/src/languageProcessing/languages/ru/config/functionWords.js +0 -519
- package/src/languageProcessing/languages/ru/config/internal/participlesShortenedList.js +0 -2914
- package/src/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js +0 -6295
- package/src/languageProcessing/languages/ru/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/ru/config/syllables.json +0 -19
- package/src/languageProcessing/languages/ru/config/transitionWords.js +0 -62
- package/src/languageProcessing/languages/ru/config/twoPartTransitionWords.js +0 -14
- package/src/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js +0 -16
- package/src/languageProcessing/languages/ru/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/ru/helpers/internal/stem.js +0 -288
- package/src/languageProcessing/languages/ru/helpers/isPassiveSentence.js +0 -14
- package/src/languageProcessing/languages/sk/Researcher.js +0 -46
- package/src/languageProcessing/languages/sk/config/firstWordExceptions.js +0 -14
- package/src/languageProcessing/languages/sk/config/functionWords.js +0 -855
- package/src/languageProcessing/languages/sk/config/internal/nonPassives.js +0 -1074
- package/src/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js +0 -22
- package/src/languageProcessing/languages/sk/config/stopWords.js +0 -34
- package/src/languageProcessing/languages/sk/config/transitionWords.js +0 -23
- package/src/languageProcessing/languages/sk/config/twoPartTransitionWords.js +0 -10
- package/src/languageProcessing/languages/sk/helpers/getClauses.js +0 -26
- package/src/languageProcessing/languages/sk/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/sk/helpers/internal/getParticiples.js +0 -16
- package/src/languageProcessing/languages/sk/helpers/internal/stem.js +0 -319
- package/src/languageProcessing/languages/sk/values/Clause.js +0 -39
- package/src/languageProcessing/languages/sv/Researcher.js +0 -45
- package/src/languageProcessing/languages/sv/config/firstWordExceptions.js +0 -15
- package/src/languageProcessing/languages/sv/config/functionWords.js +0 -176
- package/src/languageProcessing/languages/sv/config/internal/passiveVerbs.js +0 -10400
- package/src/languageProcessing/languages/sv/config/keyphraseLength.js +0 -11
- package/src/languageProcessing/languages/sv/config/transitionWords.js +0 -35
- package/src/languageProcessing/languages/sv/config/twoPartTransitionWords.js +0 -8
- package/src/languageProcessing/languages/sv/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/sv/helpers/internal/stem.js +0 -152
- package/src/languageProcessing/languages/sv/helpers/isPassiveSentence.js +0 -14
- package/src/languageProcessing/languages/tr/Researcher.js +0 -44
- package/src/languageProcessing/languages/tr/config/firstWordExceptions.js +0 -13
- package/src/languageProcessing/languages/tr/config/functionWords.js +0 -116
- package/src/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js +0 -574
- package/src/languageProcessing/languages/tr/config/internal/passiveEndings.js +0 -151
- package/src/languageProcessing/languages/tr/config/sentenceLength.js +0 -7
- package/src/languageProcessing/languages/tr/config/transitionWords.js +0 -42
- package/src/languageProcessing/languages/tr/config/twoPartTransitionWords.js +0 -7
- package/src/languageProcessing/languages/tr/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/tr/helpers/internal/stem.js +0 -20
- package/src/languageProcessing/languages/tr/helpers/isPassiveSentence.js +0 -43
- package/src/languageProcessing/researches/altTagCount.js +0 -70
- package/src/languageProcessing/researches/countSentencesFromText.js +0 -19
- package/src/languageProcessing/researches/findKeyphraseInSEOTitle.js +0 -257
- package/src/languageProcessing/researches/findKeywordInFirstParagraph.js +0 -86
- package/src/languageProcessing/researches/findTransitionWords.js +0 -123
- package/src/languageProcessing/researches/functionWordsInKeyphrase.js +0 -44
- package/src/languageProcessing/researches/getAnchorsWithKeyphrase.js +0 -227
- package/src/languageProcessing/researches/getFleschReadingScore.js +0 -150
- package/src/languageProcessing/researches/getKeywordDensity.js +0 -44
- package/src/languageProcessing/researches/getLinkStatistics.js +0 -54
- package/src/languageProcessing/researches/getLinks.js +0 -18
- package/src/languageProcessing/researches/getLongCenterAlignedTexts.js +0 -37
- package/src/languageProcessing/researches/getParagraphLength.js +0 -44
- package/src/languageProcessing/researches/getParagraphs.js +0 -18
- package/src/languageProcessing/researches/getPassiveVoiceResult.js +0 -129
- package/src/languageProcessing/researches/getProminentWordsForInsights.js +0 -48
- package/src/languageProcessing/researches/getProminentWordsForInternalLinking.js +0 -119
- package/src/languageProcessing/researches/getSentenceBeginnings.js +0 -124
- package/src/languageProcessing/researches/getSubheadingTextLengths.js +0 -59
- package/src/languageProcessing/researches/getWordForms.js +0 -204
- package/src/languageProcessing/researches/h1s.js +0 -10
- package/src/languageProcessing/researches/imageCount.js +0 -16
- package/src/languageProcessing/researches/index.js +0 -5
- package/src/languageProcessing/researches/keyphraseDistribution.js +0 -249
- package/src/languageProcessing/researches/keyphraseLength.js +0 -17
- package/src/languageProcessing/researches/keywordCount.js +0 -134
- package/src/languageProcessing/researches/keywordCountInUrl.js +0 -57
- package/src/languageProcessing/researches/matchKeywordInSubheadings.js +0 -62
- package/src/languageProcessing/researches/metaDescriptionKeyword.js +0 -85
- package/src/languageProcessing/researches/metaDescriptionLength.js +0 -12
- package/src/languageProcessing/researches/pageTitleWidth.js +0 -11
- package/src/languageProcessing/researches/readingTime.js +0 -82
- package/src/languageProcessing/researches/sentences.js +0 -20
- package/src/languageProcessing/researches/videoCount.js +0 -32
- package/src/languageProcessing/researches/wordComplexity.js +0 -129
- package/src/languageProcessing/researches/wordCountInText.js +0 -29
- package/src/languageProcessing/values/Clause.js +0 -108
- package/src/languageProcessing/values/ProminentWord.js +0 -95
- package/src/languageProcessing/values/Sentence.js +0 -111
- package/src/languageProcessing/values/index.js +0 -9
- package/src/markers/addMark.js +0 -9
- package/src/markers/addMarkSingleWord.js +0 -32
- package/src/markers/index.js +0 -7
- package/src/markers/removeDuplicateMarks.js +0 -27
- package/src/markers/removeMarks.js +0 -11
- package/src/parse/build/build.js +0 -52
- package/src/parse/build/index.js +0 -10
- package/src/parse/build/private/adapt.js +0 -113
- package/src/parse/build/private/adaptAttributes.js +0 -36
- package/src/parse/build/private/alwaysFilterElements.js +0 -75
- package/src/parse/build/private/combineIntoImplicitParagraphs.js +0 -130
- package/src/parse/build/private/filterBeforeTokenizing.js +0 -32
- package/src/parse/build/private/filterHelpers.js +0 -44
- package/src/parse/build/private/filterTree.js +0 -42
- package/src/parse/build/private/getTextElementPositions.js +0 -184
- package/src/parse/build/private/helpers/parseClassAttribute.js +0 -9
- package/src/parse/build/private/isPhrasingContent.js +0 -28
- package/src/parse/build/private/parseBlocks.js +0 -151
- package/src/parse/build/private/tokenize.js +0 -74
- package/src/parse/language/LanguageProcessor.js +0 -74
- package/src/parse/structure/Heading.js +0 -26
- package/src/parse/structure/Node.js +0 -69
- package/src/parse/structure/Paragraph.js +0 -48
- package/src/parse/structure/Sentence.js +0 -30
- package/src/parse/structure/SourceCodeLocation.js +0 -41
- package/src/parse/structure/Text.js +0 -27
- package/src/parse/structure/Token.js +0 -24
- package/src/parse/structure/index.js +0 -16
- package/src/parse/traverse/findAllInTree.js +0 -58
- package/src/parse/traverse/index.js +0 -12
- package/src/parse/traverse/innerText.js +0 -26
- package/src/parsedPaper/ParsedPaper.js +0 -92
- package/src/parsedPaper/assess/TreeAssessor.js +0 -184
- package/src/parsedPaper/assess/assessmentListFactories.js +0 -73
- package/src/parsedPaper/assess/assessments/Assessment.js +0 -79
- package/src/parsedPaper/assess/assessments/index.js +0 -6
- package/src/parsedPaper/assess/assessorFactories.js +0 -104
- package/src/parsedPaper/assess/cornerstone/assessmentListFactories.js +0 -47
- package/src/parsedPaper/assess/cornerstone/index.js +0 -5
- package/src/parsedPaper/assess/index.js +0 -20
- package/src/parsedPaper/build/PaperParser.js +0 -105
- package/src/parsedPaper/build/linguisticParsing/Sentence.js +0 -89
- package/src/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +0 -323
- package/src/parsedPaper/build/linguisticParsing/parseText.js +0 -20
- package/src/parsedPaper/build/tree/TreeBuilder.js +0 -75
- package/src/parsedPaper/build/tree/cleanup/calculateTextIndices.js +0 -190
- package/src/parsedPaper/build/tree/cleanup/getElementContent.js +0 -21
- package/src/parsedPaper/build/tree/cleanup/postParsing.js +0 -37
- package/src/parsedPaper/build/tree/html/HTMLTreeConverter.js +0 -230
- package/src/parsedPaper/build/tree/html/buildTree.js +0 -31
- package/src/parsedPaper/build/tree/html/htmlConstants.js +0 -37
- package/src/parsedPaper/build/tree/index.js +0 -14
- package/src/parsedPaper/build/tree/metadata/buildTree.js +0 -32
- package/src/parsedPaper/research/TreeResearcher.js +0 -134
- package/src/parsedPaper/research/index.js +0 -13
- package/src/parsedPaper/research/researches/Headings.js +0 -20
- package/src/parsedPaper/research/researches/LinkStatistics.js +0 -128
- package/src/parsedPaper/research/researches/Research.js +0 -50
- package/src/parsedPaper/research/researches/index.js +0 -1
- package/src/parsedPaper/structure/tree/FormattingElement.js +0 -67
- package/src/parsedPaper/structure/tree/SourceCodeLocation.js +0 -31
- package/src/parsedPaper/structure/tree/TextContainer.js +0 -85
- package/src/parsedPaper/structure/tree/index.js +0 -22
- package/src/parsedPaper/structure/tree/nodes/Heading.js +0 -26
- package/src/parsedPaper/structure/tree/nodes/LeafNode.js +0 -75
- package/src/parsedPaper/structure/tree/nodes/List.js +0 -47
- package/src/parsedPaper/structure/tree/nodes/ListItem.js +0 -26
- package/src/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js +0 -46
- package/src/parsedPaper/structure/tree/nodes/MetadataText.js +0 -26
- package/src/parsedPaper/structure/tree/nodes/Node.js +0 -154
- package/src/parsedPaper/structure/tree/nodes/Paragraph.js +0 -24
- package/src/parsedPaper/structure/tree/nodes/StructuredNode.js +0 -52
- package/src/parsedPaper/structure/tree/nodes/index.js +0 -21
- package/src/scoring/assessments/assessment.js +0 -63
- package/src/scoring/assessments/index.js +0 -58
- package/src/scoring/assessments/readability/ParagraphTooLongAssessment.js +0 -173
- package/src/scoring/assessments/readability/SentenceBeginningsAssessment.js +0 -132
- package/src/scoring/assessments/readability/SentenceLengthInTextAssessment.js +0 -186
- package/src/scoring/assessments/readability/TransitionWordsAssessment.js +0 -168
- package/src/scoring/assessments/seo/ImageCountAssessment.js +0 -112
- package/src/scoring/assessments/seo/InternalLinksAssessment.js +0 -114
- package/src/scoring/assessments/seo/IntroductionKeywordAssessment.js +0 -110
- package/src/scoring/assessments/seo/KeyphraseAssessment.js +0 -104
- package/src/scoring/assessments/seo/KeyphraseLengthAssessment.js +0 -110
- package/src/scoring/assessments/seo/KeywordDensityAssessment.js +0 -116
- package/src/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +0 -114
- package/src/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +0 -112
- package/src/scoring/assessments/seo/MetaTitleKeywordAssessment.js +0 -111
- package/src/scoring/assessments/seo/NumberInMetaTitleAssessment.js +0 -107
- package/src/scoring/assessments/seo/OutboundLinksAssessment.js +0 -111
- package/src/scoring/assessments/seo/PageTitleWidthAssessment.js +0 -104
- package/src/scoring/assessments/seo/SingleH1Assessment.js +0 -118
- package/src/scoring/assessments/seo/SingleTitleAssessment.js +0 -108
- package/src/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +0 -107
- package/src/scoring/assessments/seo/TextImagesAssessment.js +0 -144
- package/src/scoring/assessments/seo/TextLengthAssessment.js +0 -100
- package/src/scoring/assessments/seo/UrlKeywordAssessment.js +0 -111
- package/src/scoring/assessments/seo/UrlLengthAssessment.js +0 -103
- package/src/scoring/assessors/assessor.js +0 -269
- package/src/scoring/assessors/avadaAssessor.js +0 -67
- package/src/scoring/assessors/contentAssessor.js +0 -159
- package/src/scoring/assessors/index.js +0 -4
- package/src/scoring/assessors/seoAssessor.js +0 -57
- package/src/scoring/helpers/assessments/checkForTooLongSentences.js +0 -13
- package/src/scoring/helpers/assessments/inRange.js +0 -49
- package/src/scoring/helpers/assessments/keyphraseLengthFactor.js +0 -10
- package/src/scoring/helpers/assessments/recommendedKeywordCount.js +0 -43
- package/src/scoring/helpers/index.js +0 -74
- package/src/scoring/interpreters/index.js +0 -5
- package/src/scoring/interpreters/scoreToRating.js +0 -31
- package/src/scoring/renderers/AssessorPresenter.js +0 -360
- package/src/scoring/scoreAggregators/ReadabilityScoreAggregator.js +0 -203
- package/src/scoring/scoreAggregators/SEOScoreAggregator.js +0 -54
- package/src/scoring/scoreAggregators/ScoreAggregator.js +0 -23
- package/src/scoring/scoreAggregators/index.js +0 -3
- package/src/values/AssessmentResult.js +0 -496
- package/src/values/Mark.js +0 -271
- package/src/values/Paper.js +0 -425
- package/src/values/index.js +0 -9
- package/src/vendor/turkishStemmer.js +0 -3435
- package/tsconfig.json +0 -15
|
@@ -1,104 +0,0 @@
|
|
|
1
|
-
/** @module config/transitionWords */
|
|
2
|
-
|
|
3
|
-
export const singleWords = [ "abbastanza", "acciocché", "acciocchè", "adesso", "affinché", "affinchè", "allora", "almeno", "alquanto", "altrettanto",
|
|
4
|
-
"altrimenti", "analogamente", "anche", "ancora", "antecedentemente", "anzi", "anzitutto",
|
|
5
|
-
"apertamente", "appena", "assai", "attualmente", "benché", "benchè", "beninteso", "bensì", "brevemente", "bruscamente",
|
|
6
|
-
"casomai", "celermente", "certamente", "certo", "chiaramente", "ciononostante", "cioé", "cioè", "comparabilmente", "come",
|
|
7
|
-
"complessivamente", "completamente", "comunque", "concisamente", "concludendo", "conformemente", "congiuntamente",
|
|
8
|
-
"conseguentemente", "considerando", "considerato", "considerevolmente", "contemporaneamente", "continuamente",
|
|
9
|
-
"contrariamente", "controbilanciato", "così", "cosicché", "cosicchè", "dapprima", "dato", "davvero", "definitivamente",
|
|
10
|
-
"dettagliatamente", "differentemente", "diversamente", "dopo", "dopodiché", "dopodichè", "durante", "dunque", "eccetto",
|
|
11
|
-
"eccome", "effettivamente", "egualmente", "elencando", "enfaticamente", "eppure", "esaurientemente", "esplicitamente",
|
|
12
|
-
"espressamente", "estesamente", "evidentemente", "finalmente", "finché", "finchè", "fino", "finora", "fintanto", "fintanto che",
|
|
13
|
-
"fintantoché", "fintantochè", "fondamentalmente", "frattanto", "frequentemente", "generalmente", "già", "gradualmente", "illustrando",
|
|
14
|
-
"immantinente", "immediatamente", "importantissimo", "incontestabilmente", "incredibilmente", "indipendentemente",
|
|
15
|
-
"indiscutibilmente", "indubbiamente", "infatti", "infine", "innanzitutto", "innegabilmente", "inoltre", "insomma",
|
|
16
|
-
"intanto", "interamente", "istantaneamente", "invece", "logicamente", "lentamente", "ma", "malgrado", "marcatamente",
|
|
17
|
-
"memorabile", "mentre", "motivatamente", "naturalmente", "né", "nè", "neanche", "neppure", "nonché", "nonchè", "nondimeno",
|
|
18
|
-
"nonostante", "notevolmente", "occasionalmente", "oltretutto", "onde", "onestamente", "ossia", "ostinatamente",
|
|
19
|
-
"ovvero", "ovviamente", "parimenti", "particolarmente", "peraltro", "perché", "perchè", "perciò", "perlomeno", "però",
|
|
20
|
-
"pertanto", "pesantemente", "piuttosto", "poi", "poiché", "poichè", "praticamente", "precedentemente", "preferibilmente", "precisamente",
|
|
21
|
-
"prematuramente", "presto", "prima", "primariamente", "primo", "principalmente", "prontamente", "proporzionalmente",
|
|
22
|
-
"pure", "purché", "purchè", "quando", "quanto", "quantomeno", "quindi", "raramente", "realmente", "relativamente",
|
|
23
|
-
"riassumendo", "riformulando", "ripetutamente", "saltuariamente", "schiettamente", "sebbene", "secondariamente",
|
|
24
|
-
"secondo", "sempre", "sennò", "seguente", "sensibilmente", "seppure", "seriamente", "siccome", "sicuramente",
|
|
25
|
-
"significativamente", "similmente", "simultaneamente", "singolarmente", "sinteticamente", "solitamente", "solo",
|
|
26
|
-
"soltanto", "soprattutto", "sopravvalutato", "sorprendentemente", "sostanzialmente", "sottolineando", "sottovalutato",
|
|
27
|
-
"specialmente", "specificamente", "specificatamente", "subitamente", "subito", "successivamente", "successivo",
|
|
28
|
-
"talmente", "terzo", "totalmente", "tranne", "tuttavia", "ugualmente", "ulteriormente", "ultimamente", "veramente",
|
|
29
|
-
"verosimilmente", "visto" ];
|
|
30
|
-
|
|
31
|
-
export const multipleWords = [ "a breve", "a causa", "a causa di", "a condizione che", "a conseguenza", "a conti fatti",
|
|
32
|
-
"a differenza di", "a differenza del", "a differenza della", "a differenza dei", "a differenza degli",
|
|
33
|
-
"a differenza delle", "a dire il vero", "a dire la verità", "a dirla tutta", "a dispetto di", "a lungo",
|
|
34
|
-
"a lungo termine", "a maggior ragione", "a meno che non", "a parte", "a patto che", "a prescindere", "a prima vista",
|
|
35
|
-
"a proposito", "a qualunque costo", "a quanto", "a quel proposito", "a quel tempo", "a quell'epoca", "a questo fine",
|
|
36
|
-
"a questo proposito", "a questo punto", "a questo riguardo", "a questo scopo", "a riguardo", "a seguire", "a seguito",
|
|
37
|
-
"a sottolineare", "a tal fine", "a tal proposito", "a tempo debito", "a tutti gli effetti", "a tutti i costi",
|
|
38
|
-
"a una prima occhiata", "ad eccezione di", "ad esempio", "ad essere maliziosi", "ad essere sinceri", "ad ogni buon conto",
|
|
39
|
-
"ad ogni costo", "ad ogni modo", "ad una prima occhiata", "adesso che", "al che", "al contrario", "al contrario di",
|
|
40
|
-
"al fine di", "al fine di fare", "al giorno d'oggi", "al momento", "al momento giusto", "al momento opportuno",
|
|
41
|
-
"al più presto", "al posto di", "al suo posto", "al termine", "all'epoca", "all'infuori di", "all'inizio", "all'opposto",
|
|
42
|
-
"all'ultimo", "alla fine", "alla fine della fiera", "alla luce", "alla luce di", "alla lunga", "alla moda",
|
|
43
|
-
"alla stessa maniera", "allo scopo di", "allo stesso modo", "allo stesso tempo", "anch'esso", "anch'io", "anche se",
|
|
44
|
-
"ancora più", "ancora di più", "assumendo che", "bisogna chiarire che", "bisogna considerare che", "causato da",
|
|
45
|
-
"ciò nondimeno", "ciò nonostante", "col tempo", "con il tempo", "come a dire", "come abbiamo dimostrato",
|
|
46
|
-
"come è stato notato", "come è stato detto", "come è stato dimostrato", "come hanno detto", "come ho detto",
|
|
47
|
-
"come ho dimostrato", "come ho notato", "come potete notare", "come potete vedere", "come puoi notare", "come puoi vedere",
|
|
48
|
-
"come si è dimostrato", "come si può vedere", "come si può notare", "come sopra indicato", "comunque sia", "con attenzione",
|
|
49
|
-
"con enfasi", "con il risultato che", "con l'obiettivo di", "con ostinazione", "con questa intenzione", "con questa idea",
|
|
50
|
-
"con queste idee", "con questo in testa", "con questo scopo", "così che", "così da", "d'altra parte", "d'altro canto",
|
|
51
|
-
"d'altro lato", "d'altronde", "d'ora in avanti", "d'ora in poi", "da allora", "da quando", "da quanto", "da quel momento",
|
|
52
|
-
"da quella volta", "da questo momento in poi", "da questo momento", "da qui", "da ultimo", "da un certo punto di vista",
|
|
53
|
-
"da un lato", "da una parte", "dall'altro lato", "dall'epoca", "dal che", "dato che", "dato per assunto che", "davanti a",
|
|
54
|
-
"del tutto", "dell'epoca", "detto questo", "di certo", "di colpo", "di conseguenza", "di fatto", "di fronte", "di fronte a",
|
|
55
|
-
"di lì a poco", "di punto in bianco", "di quando in quando", "di quanto non sia", "di quel tempo", "di qui a", "di rado",
|
|
56
|
-
"di seguito", "di si", "di sicuro", "di solito", "di tanto in tanto", "di tutt'altra pasta", "di quando in quando",
|
|
57
|
-
"differente da", "diversamente da", "diverso da", "dopotutto", "dovuto a", "e anche", "e inoltre", "entro breve",
|
|
58
|
-
"fermo restando che", "faccia a faccia", "fin da", "fin dall'inizio", "fin quando", "finché non", "finchè non", "fin dal primo momento",
|
|
59
|
-
"fin dall'inizio", "fino a", "fino a questo momento", "fino ad oggi", "fino ai giorni nostri", "fino adesso",
|
|
60
|
-
"fino a un certo punto", "fino adesso", "fra quanto", "il prima possibile", "in aggiunta", "in altre parole",
|
|
61
|
-
"in altri termini", "in ambo i casi", "in breve", "in caso di", "in conclusione", "in conformità", "in confronto",
|
|
62
|
-
"in confronto a", "in conseguenza", "in considerazione", "in considerazione di", "in definitiva", "in dettaglio",
|
|
63
|
-
"importante rendersi conto", "in effetti", "in entrambi i casi", "in fin dei conti", "in generale", "in genere",
|
|
64
|
-
"in linea di massima", "in poche parole", "il più possibile", "in maggior parte", "in maniera analoga", "in maniera convincente",
|
|
65
|
-
"in maniera esauriente", "in maniera esaustiva", "in maniera esplicita", "in maniera evidente", "in maniera incontestabile",
|
|
66
|
-
"in maniera indiscutibile", "in maniera innegabile", "in maniera significativa", "in maniera simile", "in modo allusivo",
|
|
67
|
-
"in modo analogo", "in modo che", "in modo convincente", "in modo da", "in modo identico", "in modo notevole",
|
|
68
|
-
"in modo significativo", "in modo significativo", "in modo simile", "in ogni caso", "in ogni modo", "in ogni momento",
|
|
69
|
-
"in parte considerevole", "in parti uguali", "in particolare", "in particolare per", "in particolare", "in più", "in pratica",
|
|
70
|
-
"in precedenza", "in prima battuta", "in prima istanza", "in primo luogo", "in rapporto", "in qualche modo", "in qualsiasi modo",
|
|
71
|
-
"in qualsiasi momento", "in qualunque modo", "in qualunque momento", "in quarta battuta", "in quarta istanza", "in quarto luogo",
|
|
72
|
-
"in quel caso", "in quelle circostanze", "in questa occasione", "in questa situazione", "in questo caso",
|
|
73
|
-
"in questo caso particolare", "in questo istante", "in questo momento", "in rare occasioni", "in realtà", "in seconda battuta",
|
|
74
|
-
"in seconda istanza", "in secondo luogo", "in seguito", "in sintesi", "in sostanza", "in tempo", "in terza battuta",
|
|
75
|
-
"in terza istanza", "in terzo luogo", "in totale", "in tutto", "in ugual maniera", "in ugual misura", "in ugual modo",
|
|
76
|
-
"in ultima analisi", "in ultima istanza", "in un altro caso", "in una parola", "in verità", "insieme a", "insieme con",
|
|
77
|
-
"invece che", "invece di", "la prima cosa da considerare", "la prima cosa da tenere a mente", "lo stesso",
|
|
78
|
-
"mentre potrebbe essere vero", "motivo per cui", "motivo per il quale", "ne consegue che", "ne deriva che", "nei dettagli",
|
|
79
|
-
"nel caso", "nel caso che", "nel caso in cui", "nel complesso", "nel corso del", "nel corso di", "nel frattempo",
|
|
80
|
-
"nel lungo periodo", "nel mentre", "nell'eventualità che", "nella misura in cui", "nella speranza che", "nella stessa maniera",
|
|
81
|
-
"nella stessa misura", "nello specifico", "nello stesso modo", "nello stesso momento", "nello stesso stile", "non appena",
|
|
82
|
-
"non per essere maliziosi", "non più da", "nonostante ciò", "nonostante tutto", "ogni qualvolta", "ogni tanto", "ogni volta",
|
|
83
|
-
"oltre a", "oltre a ciò", "ora che", "passo dopo passo", "per causa di", "per certo", "per chiarezza", "per chiarire",
|
|
84
|
-
"per come", "per concludere", "per conto di", "per contro", "per cui", "per davvero", "per di più", "per dirla in altro modo",
|
|
85
|
-
"per dirla meglio", "per dirla tutta", "per es.", "per esempio", "per essere sinceri", "per far vedere", "per farla breve",
|
|
86
|
-
"per finire", "per l'avvenire", "per l'ultima volta", "per la maggior parte", "per la stessa ragione", "per la verità",
|
|
87
|
-
"per lo più", "per mettere in luce", "per metterla in altro modo", "per non dire di", "per non parlare di", "per ora",
|
|
88
|
-
"per ovvi motivi", "per paura di", "per paura dei", "per paura delle", "per paura degli", "per prima cosa", "per quanto",
|
|
89
|
-
"per questa ragione", "per questo motivo", "per riassumere", "per sottolineare", "per timore", "per trarre le conclusioni",
|
|
90
|
-
"per ultima", "per ultime", "per ultimi", "per ultimo", "per via di", "perché si", "perchè si", "perfino se", "piano piano",
|
|
91
|
-
"più di ogni altra cosa", "più di tutto", "più facilmente", "più importante", "più tardi", "poco a poco", "poco dopo",
|
|
92
|
-
"prendiamo il caso di", "presto o tardi", "prima che", "prima di", "prima di ogni cosa", "prima di tutto",
|
|
93
|
-
"prima o dopo", "prima o poi", "questo è probabilmente vero", "questo potrebbe essere vero", "restando inteso che",
|
|
94
|
-
"riassumendo", "quanto prima", "questa volta", "se confrontato con", "se e solo se", "se no", "seduta stante", "sempreché", "semprechè",
|
|
95
|
-
"sempre che", "senz'altro", "senza alcun riguardo", "senza dubbio", "senz'ombra di dubbio", "senza ombra di dubbio",
|
|
96
|
-
"senza riguardo per", "senza tregua", "senza ulteriore ritardo", "sia quel che sia", "solo se", "sotto questa luce",
|
|
97
|
-
"sperando che", "sta volta", "su tutto", "subito dopo", "sul serio", "tanto per cominciare", "tanto quanto", "tra breve",
|
|
98
|
-
"tra l'altro", "tra poco", "tra quanto", "tutte le volte", "tutti insieme", "tutto a un tratto", "tutto ad un tratto",
|
|
99
|
-
"tutto d'un tratto", "tutto considerato", "tutto sommato", "un passo alla volta", "un tempo", "una volta",
|
|
100
|
-
"una volta ogni tanto", "unito a", "va chiarito che", "va considerato che", "vada come vada", "vale a dire", "visto che" ];
|
|
101
|
-
|
|
102
|
-
export const allWords = singleWords.concat( multipleWords );
|
|
103
|
-
|
|
104
|
-
export default allWords;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
/**
|
|
3
|
-
* Returns an array with two-part transition words to be used by the assessments.
|
|
4
|
-
* @returns {Array} The array filled with two-part transition words.
|
|
5
|
-
*/
|
|
6
|
-
export default [ [ "né", "né" ], [ "non", "ma" ], [ "non prima", "che" ], [ "non prima", "di" ], [ "non solo", "ma anche" ],
|
|
7
|
-
[ "o", "o" ], [ "se", "allora" ], [ "se", "o" ], [ "sia", "che" ] ];
|
|
8
|
-
|
|
9
|
-
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { helpers } from "avadaseo";
|
|
2
|
-
const { formatNumber } = helpers;
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Returns the Flesch reading score for Italian.
|
|
6
|
-
*
|
|
7
|
-
* @param {Object} statistics The Flesch reading statistics.
|
|
8
|
-
*
|
|
9
|
-
* @returns {number} The Flesch reading score for Italian.
|
|
10
|
-
*/
|
|
11
|
-
export default function calculateScore( statistics ) {
|
|
12
|
-
const score = 217 - ( 1.3 * statistics.averageWordsPerSentence ) - ( 0.6 * statistics.syllablesPer100Words );
|
|
13
|
-
|
|
14
|
-
return formatNumber( score );
|
|
15
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import {languageProcessing} from '../../../index';
|
|
2
|
-
const {createRegexFromArray, getClauses} = languageProcessing;
|
|
3
|
-
|
|
4
|
-
import Clause from '../values/Clause';
|
|
5
|
-
import auxiliaries from '../config/internal/passiveVoiceAuxiliaries.js';
|
|
6
|
-
import stopwords from '../config/stopWords.js';
|
|
7
|
-
|
|
8
|
-
const followingAuxiliaryExceptionWords = ['il', 'i', 'la', 'le', 'lo', 'gli', 'uno', 'una'];
|
|
9
|
-
const reflexivePronouns = ['mi', 'ti', 'si', 'ci', 'vi'];
|
|
10
|
-
|
|
11
|
-
const options = {
|
|
12
|
-
Clause,
|
|
13
|
-
stopwords: stopwords,
|
|
14
|
-
auxiliaries: auxiliaries,
|
|
15
|
-
regexes: {
|
|
16
|
-
auxiliaryRegex: createRegexFromArray(auxiliaries),
|
|
17
|
-
stopCharacterRegex: /([:,])(?=[ \n\r\t'"+\-»«‹›<>])/gi,
|
|
18
|
-
followingAuxiliaryExceptionRegex: createRegexFromArray(followingAuxiliaryExceptionWords),
|
|
19
|
-
directPrecedenceExceptionRegex: createRegexFromArray(reflexivePronouns)
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Gets the clauses from a sentence by determining sentence breakers.
|
|
25
|
-
*
|
|
26
|
-
* @param {string} sentence The sentence to split up in clauses.
|
|
27
|
-
*
|
|
28
|
-
* @returns {Array} The array with all the clauses that have an auxiliary.
|
|
29
|
-
*/
|
|
30
|
-
export default function getItalianClauses(sentence) {
|
|
31
|
-
return getClauses(sentence, options);
|
|
32
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import {get} from 'lodash';
|
|
2
|
-
import {languageProcessing} from '../../../index';
|
|
3
|
-
const {baseStemmer} = languageProcessing;
|
|
4
|
-
|
|
5
|
-
import stem from './internal/stem';
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* Returns the stemmer for a researcher.
|
|
9
|
-
*
|
|
10
|
-
* @param {Researcher} researcher The researcher.
|
|
11
|
-
*
|
|
12
|
-
* @returns {Function} The stemmer.
|
|
13
|
-
*/
|
|
14
|
-
export default function getStemmer(researcher) {
|
|
15
|
-
const morphologyData = get(researcher.getData('morphology'), 'it', false);
|
|
16
|
-
|
|
17
|
-
if (morphologyData) {
|
|
18
|
-
return word => stem(word, morphologyData);
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
return baseStemmer;
|
|
22
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import {languageProcessing} from '../../../index';
|
|
2
|
-
const {getWords} = languageProcessing;
|
|
3
|
-
|
|
4
|
-
import participleStems from '../../config/internal/passiveVoiceParticiples';
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Checks if an Italian word is a participle.
|
|
8
|
-
* @param {string} word An Italian word.
|
|
9
|
-
* @returns {boolean} Returns true if word is an Italian participle, and false otherwise.
|
|
10
|
-
*/
|
|
11
|
-
function isParticiple(word) {
|
|
12
|
-
const participleSuffixes = ['a', 'o', 'e', 'i'];
|
|
13
|
-
// For each participle suffixes, check if the word ends in one of them.
|
|
14
|
-
return participleSuffixes.some(suffix => {
|
|
15
|
-
// Make sure only possible participles are targeted (minimum length being "> 3")
|
|
16
|
-
if (word.length > 3 && word.endsWith(suffix)) {
|
|
17
|
-
// If the word ends with one of the suffixes, retrieve the stem.
|
|
18
|
-
const stem = word.slice(0, -1);
|
|
19
|
-
// Check if the stem is in the list of participle stems: return true if it is, otherwise return false.
|
|
20
|
-
return participleStems.includes(stem);
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Creates a participle list for the participles found in a clause.
|
|
26
|
-
*
|
|
27
|
-
* @param {string} clauseText The clause to find participles in.
|
|
28
|
-
*
|
|
29
|
-
* @returns {Array} The list with participles.
|
|
30
|
-
*/
|
|
31
|
-
export default function getParticiples(clauseText) {
|
|
32
|
-
const words = getWords(clauseText);
|
|
33
|
-
return words.filter(word => isParticiple(word));
|
|
34
|
-
}
|
|
@@ -1,436 +0,0 @@
|
|
|
1
|
-
/* eslint-disable complexity */
|
|
2
|
-
/* eslint-disable max-statements */
|
|
3
|
-
/*
|
|
4
|
-
Copyright (c) 2012, Leonardo Fenu, Chris Umbel
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
The above copyright notice and this permission notice shall be included in
|
|
12
|
-
all copies or substantial portions of the Software.
|
|
13
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
14
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
15
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
16
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
17
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
18
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
19
|
-
THE SOFTWARE.
|
|
20
|
-
*/
|
|
21
|
-
|
|
22
|
-
import {languageProcessing} from '../../../index';
|
|
23
|
-
const {createSingleRuleFromArray, createRulesFromArrays} = languageProcessing;
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Determines whether a letter is a vowel.
|
|
27
|
-
*
|
|
28
|
-
* @param {string} letter The letter that has to be checked.
|
|
29
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
30
|
-
*
|
|
31
|
-
* @returns {boolean} True if the letter is a vowel.
|
|
32
|
-
*/
|
|
33
|
-
function isVowel(letter, morphologyData) {
|
|
34
|
-
return morphologyData.externalStemmer.vowels.includes(letter);
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Determines the next position in a word that is a vowel.
|
|
39
|
-
*
|
|
40
|
-
* @param {string} word The word to be checked.
|
|
41
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
42
|
-
* @param {number} start The position of the word where you start checking.
|
|
43
|
-
*
|
|
44
|
-
* @returns {number} The next position in a word that is a vowel, or the final position if no vowel is found.
|
|
45
|
-
*/
|
|
46
|
-
function getNextVowelPos(word, morphologyData, start) {
|
|
47
|
-
start = start + 1;
|
|
48
|
-
const length = word.length;
|
|
49
|
-
|
|
50
|
-
for (let i = start; i < length; i++) {
|
|
51
|
-
if (isVowel(word[i], morphologyData)) {
|
|
52
|
-
return i;
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
return length;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Determines the next position in a word that is a consonant.
|
|
61
|
-
*
|
|
62
|
-
* @param {string} word The word that has to be checked.
|
|
63
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
64
|
-
* @param {number} start The position of the word where you start checking.
|
|
65
|
-
*
|
|
66
|
-
* @returns {number} The next position in a word that is a consonant, or the final position if no consonant is found.
|
|
67
|
-
*/
|
|
68
|
-
function getNextConsonantPos(word, morphologyData, start) {
|
|
69
|
-
const length = word.length;
|
|
70
|
-
|
|
71
|
-
for (let i = start; i < length; i++) {
|
|
72
|
-
if (!isVowel(word[i], morphologyData)) {
|
|
73
|
-
return i;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
return length;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
/**
|
|
81
|
-
* Checks whether a word ends in a suffix and if so it returns the suffix.
|
|
82
|
-
*
|
|
83
|
-
* @param {string} word The word that has to be checked.
|
|
84
|
-
* @param {string[]} suffixes The suffixes that have to be checked.
|
|
85
|
-
*
|
|
86
|
-
* @returns {string} The suffix that the word ends in or an empty string if the word does not end in any of the suffixes.
|
|
87
|
-
*/
|
|
88
|
-
function endsinArr(word, suffixes) {
|
|
89
|
-
for (let i = 0; i < suffixes.length; i++) {
|
|
90
|
-
if (word.endsWith(suffixes[i])) {
|
|
91
|
-
return suffixes[i];
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
return '';
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
* Turns acute accents into grave ones.
|
|
100
|
-
*
|
|
101
|
-
* @param {string} word The word that has to be checked.
|
|
102
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
103
|
-
*
|
|
104
|
-
* @returns {string} The word with acute accents (e.g. é) replaced by grave ones (e.g. è).
|
|
105
|
-
*/
|
|
106
|
-
function replaceAcute(word, morphologyData) {
|
|
107
|
-
const acuteReplacements = createRulesFromArrays(
|
|
108
|
-
morphologyData.externalStemmer.preProcessing.acuteReplacements,
|
|
109
|
-
'gi'
|
|
110
|
-
);
|
|
111
|
-
|
|
112
|
-
for (const acuteReplacement of acuteReplacements) {
|
|
113
|
-
word = word.replace(acuteReplacement.reg, acuteReplacement.repl);
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
return word;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Turns an i or u in between vowels into upper case.
|
|
121
|
-
*
|
|
122
|
-
* @param {string} word The word that has to be checked.
|
|
123
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
124
|
-
*
|
|
125
|
-
* @returns {string} The word with either i or u turned into upper case.
|
|
126
|
-
*/
|
|
127
|
-
function vowelMarking(word, morphologyData) {
|
|
128
|
-
return word.replace(
|
|
129
|
-
new RegExp(morphologyData.externalStemmer.preProcessing.vowelMarking, 'g'),
|
|
130
|
-
(match, p1, p2, p3) => p1 + p2.toUpperCase() + p3
|
|
131
|
-
);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Pre-process the word for stemming by setting it to lower case and replacing some letters.
|
|
136
|
-
*
|
|
137
|
-
* @param {string} word The word to pre-process.
|
|
138
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
139
|
-
*
|
|
140
|
-
* @returns {string} The pre-processed word.
|
|
141
|
-
*/
|
|
142
|
-
function preProcess(word, morphologyData) {
|
|
143
|
-
word = word.toLowerCase();
|
|
144
|
-
word = replaceAcute(word, morphologyData);
|
|
145
|
-
const quReplacement = createSingleRuleFromArray(
|
|
146
|
-
morphologyData.externalStemmer.preProcessing.quReplacement,
|
|
147
|
-
'g'
|
|
148
|
-
);
|
|
149
|
-
word = word.replace(quReplacement.reg, quReplacement.repl);
|
|
150
|
-
word = vowelMarking(word, morphologyData);
|
|
151
|
-
|
|
152
|
-
return word;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
/**
|
|
156
|
-
* Determines R1, R2 and RV in the word.
|
|
157
|
-
*
|
|
158
|
-
* @param {string} word The word for which Rs have to be determined.
|
|
159
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
160
|
-
*
|
|
161
|
-
* @returns {{r2: number, rv: number, r1: number}} R1, R2 and RV in the word.
|
|
162
|
-
*/
|
|
163
|
-
const determineRs = function(word, morphologyData) {
|
|
164
|
-
let r1 = word.length;
|
|
165
|
-
let r2 = word.length;
|
|
166
|
-
let rv = word.length;
|
|
167
|
-
|
|
168
|
-
// R1 is the region after the first non-vowel following a vowel,
|
|
169
|
-
for (let i = 0; i < word.length - 1 && r1 === word.length; i++) {
|
|
170
|
-
if (isVowel(word[i], morphologyData) && !isVowel(word[i + 1], morphologyData)) {
|
|
171
|
-
r1 = i + 2;
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
// R2 is the region after the first non-vowel following a vowel in R1
|
|
176
|
-
for (let i = r1; i < word.length - 1 && r2 === word.length; i++) {
|
|
177
|
-
if (isVowel(word[i], morphologyData) && !isVowel(word[i + 1], morphologyData)) {
|
|
178
|
-
r2 = i + 2;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
if (word.length > 3) {
|
|
183
|
-
if (!isVowel(word[1], morphologyData)) {
|
|
184
|
-
// If the second letter is a consonant, RV is the region after the next following vowel.
|
|
185
|
-
rv = getNextVowelPos(word, morphologyData, 1) + 1;
|
|
186
|
-
} else if (isVowel(word[0], morphologyData) && isVowel(word[1], morphologyData)) {
|
|
187
|
-
// Or if the first two letters are vowels, RV is the region after the next consonant.
|
|
188
|
-
rv = getNextConsonantPos(word, morphologyData, 2) + 1;
|
|
189
|
-
} else {
|
|
190
|
-
/*
|
|
191
|
-
* Otherwise (consonant-vowel case) RV is the region after the third letter.
|
|
192
|
-
* But RV is the end of the word if these positions cannot be found.
|
|
193
|
-
*/
|
|
194
|
-
rv = 3;
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
return {r1, r2, rv};
|
|
199
|
-
};
|
|
200
|
-
|
|
201
|
-
/**
|
|
202
|
-
* Removes pronoun suffixes.
|
|
203
|
-
*
|
|
204
|
-
* @param {string} word The word from which suffixes have to be removed.
|
|
205
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
206
|
-
* @param {string} rvText The content of the RV.
|
|
207
|
-
*
|
|
208
|
-
* @returns {string} The word without pronoun suffixes.
|
|
209
|
-
*/
|
|
210
|
-
const removePronounSuffixes = function(word, morphologyData, rvText) {
|
|
211
|
-
const foundSuffix = endsinArr(word, morphologyData.externalStemmer.pronounSuffixes.suffixes);
|
|
212
|
-
|
|
213
|
-
if (foundSuffix !== '') {
|
|
214
|
-
const foundSuffixPre1 = endsinArr(
|
|
215
|
-
rvText.slice(0, -foundSuffix.length),
|
|
216
|
-
morphologyData.externalStemmer.pronounSuffixes.preSuffixesGerund
|
|
217
|
-
);
|
|
218
|
-
const foundSuffixPre2 = endsinArr(
|
|
219
|
-
rvText.slice(0, -foundSuffix.length),
|
|
220
|
-
morphologyData.externalStemmer.pronounSuffixes.preSuffixesInfinitive
|
|
221
|
-
);
|
|
222
|
-
|
|
223
|
-
if (foundSuffixPre1 !== '') {
|
|
224
|
-
word = word.slice(0, -foundSuffix.length);
|
|
225
|
-
}
|
|
226
|
-
if (foundSuffixPre2 !== '') {
|
|
227
|
-
word =
|
|
228
|
-
word.slice(0, -foundSuffix.length) +
|
|
229
|
-
morphologyData.externalStemmer.pronounSuffixes.infinitiveCompletion;
|
|
230
|
-
}
|
|
231
|
-
}
|
|
232
|
-
return word;
|
|
233
|
-
};
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Removes standard suffixes.
|
|
237
|
-
*
|
|
238
|
-
* @param {string} word The word from which standard suffixes have to be removed.
|
|
239
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
240
|
-
* @param {string} r2Text The content of the R2.
|
|
241
|
-
* @param {string} r1Text The content of the R1.
|
|
242
|
-
* @param {string} rvText The content of the RV.
|
|
243
|
-
*
|
|
244
|
-
* @returns {string} The word without standard suffixes.
|
|
245
|
-
*/
|
|
246
|
-
const removeStandardSuffixes = function(word, morphologyData, r2Text, r1Text, rvText) {
|
|
247
|
-
const regions = {
|
|
248
|
-
r1: r1Text,
|
|
249
|
-
r2: r2Text,
|
|
250
|
-
rv: rvText
|
|
251
|
-
};
|
|
252
|
-
|
|
253
|
-
for (const suffixGroup of morphologyData.externalStemmer.standardSuffixes) {
|
|
254
|
-
const foundSuffix = endsinArr(regions[suffixGroup.region], suffixGroup.suffixes);
|
|
255
|
-
|
|
256
|
-
if (foundSuffix) {
|
|
257
|
-
return word.slice(0, -foundSuffix.length) + suffixGroup.replacement;
|
|
258
|
-
}
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
return word;
|
|
262
|
-
};
|
|
263
|
-
|
|
264
|
-
/**
|
|
265
|
-
* Removes verb suffixes.
|
|
266
|
-
*
|
|
267
|
-
* @param {string} word The word from which verb suffixes have to be removed.
|
|
268
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
269
|
-
* @param {string} rvText The content of the RV.
|
|
270
|
-
*
|
|
271
|
-
* @returns {string} The word without verb suffixes.
|
|
272
|
-
*/
|
|
273
|
-
const removeVerbSuffixes = function(word, morphologyData, rvText) {
|
|
274
|
-
const foundSuffix = endsinArr(rvText, morphologyData.externalStemmer.verbSuffixes);
|
|
275
|
-
|
|
276
|
-
if (foundSuffix) {
|
|
277
|
-
word = word.slice(0, -foundSuffix.length);
|
|
278
|
-
}
|
|
279
|
-
|
|
280
|
-
return word;
|
|
281
|
-
};
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Normalizes digraphs ch/gh to c/g.
|
|
285
|
-
*
|
|
286
|
-
* @param {string} word The word to normalize.
|
|
287
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
288
|
-
* @param {string} rvText The content of the RV.
|
|
289
|
-
*
|
|
290
|
-
* @returns {string} The normalized word.
|
|
291
|
-
*/
|
|
292
|
-
const normalizeDigraphs = function(word, morphologyData, rvText) {
|
|
293
|
-
const digraphCh = morphologyData.externalStemmer.digraphNormalization.digraphCh;
|
|
294
|
-
const digraphGh = morphologyData.externalStemmer.digraphNormalization.digraphGh;
|
|
295
|
-
|
|
296
|
-
if (rvText.endsWith(digraphCh[0])) {
|
|
297
|
-
word = word.slice(0, -digraphGh[0].length) + digraphCh[1];
|
|
298
|
-
} else if (rvText.endsWith(digraphGh[0])) {
|
|
299
|
-
word = word.slice(0, -digraphGh[0].length) + digraphGh[1];
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
return word;
|
|
303
|
-
};
|
|
304
|
-
|
|
305
|
-
/**
|
|
306
|
-
* Returns a canonical stem for words with multiple stems.
|
|
307
|
-
*
|
|
308
|
-
* @param {string} word The word to canonicalize.
|
|
309
|
-
* @param {Object} stemsThatBelongToOneWord An object of arrays of stems belonging to one word.
|
|
310
|
-
*
|
|
311
|
-
* @returns {string} A canonicalized stem or the original word.
|
|
312
|
-
*/
|
|
313
|
-
const canonicalizeStem = function(word, stemsThatBelongToOneWord) {
|
|
314
|
-
// Check the verbs list. The infinitive stem is always the canonical stem for verbs.
|
|
315
|
-
for (const paradigm of stemsThatBelongToOneWord.verbsWithMultipleStems) {
|
|
316
|
-
if (paradigm.includes(word)) {
|
|
317
|
-
return paradigm[0];
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
// Check the diminutives list.
|
|
321
|
-
for (const paradigm of stemsThatBelongToOneWord.irregularDiminutives) {
|
|
322
|
-
if (paradigm.includes(word)) {
|
|
323
|
-
return paradigm[0];
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
};
|
|
327
|
-
|
|
328
|
-
/**
|
|
329
|
-
* Checks whether a word is in the full-form exception list and if so returns the canonical stem.
|
|
330
|
-
*
|
|
331
|
-
* @param {string} word The word to be checked.
|
|
332
|
-
* @param {Object} exceptions The list of full-form exceptions to be checked in.
|
|
333
|
-
*
|
|
334
|
-
* @returns {null|string} The canonical stem or null if nothing was found.
|
|
335
|
-
*/
|
|
336
|
-
const checkWordInFullFormExceptions = function(word, exceptions) {
|
|
337
|
-
for (const paradigm of exceptions) {
|
|
338
|
-
if (paradigm[1].includes(word)) {
|
|
339
|
-
return paradigm[0];
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
return null;
|
|
343
|
-
};
|
|
344
|
-
|
|
345
|
-
/**
|
|
346
|
-
* Stems Italian words.
|
|
347
|
-
*
|
|
348
|
-
* @param {string} word The word to stem.
|
|
349
|
-
* @param {Object} morphologyData The Italian morphology data file.
|
|
350
|
-
*
|
|
351
|
-
* @returns {string} The stemmed word.
|
|
352
|
-
*/
|
|
353
|
-
export default function stem(word, morphologyData) {
|
|
354
|
-
// Check the exception list for irregular plural nouns and adjectives.
|
|
355
|
-
const irregularPluralNounsAndAdjectives = checkWordInFullFormExceptions(
|
|
356
|
-
word,
|
|
357
|
-
morphologyData.irregularPluralNounsAndAdjectives
|
|
358
|
-
);
|
|
359
|
-
if (irregularPluralNounsAndAdjectives) {
|
|
360
|
-
return irregularPluralNounsAndAdjectives;
|
|
361
|
-
}
|
|
362
|
-
|
|
363
|
-
// Check the exception list for irregular verbs listed in full forms.
|
|
364
|
-
const irregularVerbs = checkWordInFullFormExceptions(word, morphologyData.irregularVerbs);
|
|
365
|
-
if (irregularVerbs) {
|
|
366
|
-
return irregularVerbs;
|
|
367
|
-
}
|
|
368
|
-
|
|
369
|
-
// Start word pre-processing.
|
|
370
|
-
word = preProcess(word, morphologyData);
|
|
371
|
-
|
|
372
|
-
// Don't stem words that consist of less than 3 letters.
|
|
373
|
-
if (word.length < 3) {
|
|
374
|
-
return word;
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
// Determines r1 ,r2, rv.
|
|
378
|
-
const {r1, r2, rv} = determineRs(word, morphologyData);
|
|
379
|
-
|
|
380
|
-
// Determiners the content of r1, r2, and rv.
|
|
381
|
-
let r1Text = word.substring(r1);
|
|
382
|
-
let r2Text = word.substring(r2);
|
|
383
|
-
let rvText = word.substring(rv);
|
|
384
|
-
|
|
385
|
-
const originalWord = word;
|
|
386
|
-
|
|
387
|
-
// Step 0: Attached pronoun removal.
|
|
388
|
-
word = removePronounSuffixes(word, morphologyData, rvText);
|
|
389
|
-
|
|
390
|
-
if (word !== originalWord) {
|
|
391
|
-
r1Text = word.substring(r1);
|
|
392
|
-
r2Text = word.substring(r2);
|
|
393
|
-
rvText = word.substring(rv);
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
const wordAfter0 = word;
|
|
397
|
-
|
|
398
|
-
// Step 1: Standard suffix removal.
|
|
399
|
-
word = removeStandardSuffixes(word, morphologyData, r2Text, r1Text, rvText);
|
|
400
|
-
|
|
401
|
-
if (word !== wordAfter0) {
|
|
402
|
-
rvText = word.substring(rv);
|
|
403
|
-
}
|
|
404
|
-
|
|
405
|
-
const wordAfter1 = word;
|
|
406
|
-
|
|
407
|
-
// Step 2: Verb suffix removal.
|
|
408
|
-
if (wordAfter0 === wordAfter1) {
|
|
409
|
-
word = removeVerbSuffixes(word, morphologyData, rvText);
|
|
410
|
-
}
|
|
411
|
-
|
|
412
|
-
rvText = word.substring(rv);
|
|
413
|
-
|
|
414
|
-
// Always do step 3.
|
|
415
|
-
let foundSuffix = '';
|
|
416
|
-
|
|
417
|
-
// Remove general suffixes.
|
|
418
|
-
if ((foundSuffix = endsinArr(rvText, morphologyData.externalStemmer.generalSuffixes)) !== '') {
|
|
419
|
-
word = word.slice(0, -foundSuffix.length);
|
|
420
|
-
}
|
|
421
|
-
|
|
422
|
-
rvText = word.substring(rv);
|
|
423
|
-
|
|
424
|
-
// Normalize digraphs ch/gh.
|
|
425
|
-
word = normalizeDigraphs(word, morphologyData, rvText);
|
|
426
|
-
|
|
427
|
-
// Lowercase the word before canonicalizing stem
|
|
428
|
-
word = word.toLowerCase();
|
|
429
|
-
|
|
430
|
-
// Returns a canonical stem for words with multiple stems (e.g., verbs: chiudere–chiuso; diminutives: ovetto-uovo).
|
|
431
|
-
const canonicalStem = canonicalizeStem(word, morphologyData.stemsThatBelongToOneWord);
|
|
432
|
-
if (canonicalStem) {
|
|
433
|
-
return canonicalStem;
|
|
434
|
-
}
|
|
435
|
-
return word.toLowerCase();
|
|
436
|
-
}
|