Download src/lib/wordProcessing.ts from Mistral-AI-Game-Jam/description-improv: direct link, hf CLI and curl.
- Browser
- Download file 789 Bytes
-
https://huggingface.co/spaces/Mistral-AI-Game-Jam/description-improv/resolve/main/src/lib/wordProcessing.ts
- Command line
-
hf download hf://spaces/Mistral-AI-Game-Jam/description-improv/src/lib/wordProcessing.ts
-
curl -L -o wordProcessing.ts https://huggingface.co/spaces/Mistral-AI-Game-Jam/description-improv/resolve/main/src/lib/wordProcessing.ts
789 Bytes
| import nlp from 'compromise'; | |
| export const normalizeWord = (word: string, language: string = 'en'): string => { | |
| let processedWord = word; | |
| // Only apply compromise for English | |
| if (language === 'en') { | |
| const doc = nlp(word); | |
| processedWord = doc.nouns().toSingular().out('text'); | |
| // Handle cases where compromise doesn't produce output | |
| if (!processedWord) { | |
| processedWord = word; | |
| } | |
| } | |
| // Apply standard normalization for all languages | |
| return processedWord | |
| .normalize('NFD') | |
| .replace(/[\u0300-\u036f]/g, '') | |
| .toLowerCase() | |
| // Handle German umlauts and their alternative spellings | |
| .replace(/ü/g, 'ue') | |
| .replace(/ä/g, 'ae') | |
| .replace(/ö/g, 'oe') | |
| .replace(/ß/g, 'ss') | |
| .replace(/[^a-z]/g, '') | |
| .trim(); | |
| }; | |