use of ai.elimu.model.content.Word in project webapp by elimu-ai.
the class SyllableFrequencyHelper method getSyllableFrequency.
public static Map<String, Integer> getSyllableFrequency(StoryBook storyBook) {
Map<String, Integer> syllableFrequencyMap = new HashMap<>();
List<String> paragraphs = storyBook.getParagraphs();
for (String paragraph : paragraphs) {
logger.info("paragraph: " + paragraph);
List<String> words = WordExtractionHelper.getWords(paragraph);
for (String wordInParagraph : words) {
logger.info("wordInParagraph: " + wordInParagraph);
Word word = new Word();
word.setLocale(storyBook.getLocale());
word.setText(wordInParagraph);
List<String> syllables = SyllableHelper.getSyllables(word);
logger.info("syllables.size(): " + syllables.size());
for (String syllable : syllables) {
logger.info("syllable: " + syllable);
if (!syllableFrequencyMap.containsKey(syllable)) {
syllableFrequencyMap.put(syllable, 1);
} else {
syllableFrequencyMap.put(syllable, syllableFrequencyMap.get(syllable) + 1);
}
}
}
}
return sortByValue(syllableFrequencyMap);
}
use of ai.elimu.model.content.Word in project webapp by elimu-ai.
the class JavaToGsonConverter method getImageGson.
public static ImageGson getImageGson(Image image) {
if (image == null) {
return null;
} else {
ImageGson imageGson = new ImageGson();
imageGson.setId(image.getId());
imageGson.setLocale(image.getLocale());
imageGson.setTimeLastUpdate(image.getTimeLastUpdate());
imageGson.setRevisionNumber(image.getRevisionNumber());
imageGson.setContentStatus(image.getContentStatus());
imageGson.setDownloadUrl("/image/" + image.getId() + "." + image.getImageFormat().toString().toLowerCase());
imageGson.setDownloadSize(image.getBytes().length / 1024);
imageGson.setContentType(image.getContentType());
imageGson.setLiteracySkills(image.getLiteracySkills());
imageGson.setNumeracySkills(image.getNumeracySkills());
List<LetterGson> letters = new ArrayList<>();
for (Letter letter : image.getLetters()) {
LetterGson letterGson = getLetterGson(letter);
letters.add(letterGson);
}
imageGson.setLetters(letters);
List<NumberGson> numbers = new ArrayList<>();
for (Number number : image.getNumbers()) {
NumberGson numberGson = getNumberGson(number);
numbers.add(numberGson);
}
imageGson.setNumbers(numbers);
List<WordGson> words = new ArrayList<>();
for (Word word : image.getWords()) {
WordGson wordGson = getWordGson(word);
words.add(wordGson);
}
imageGson.setWords(words);
imageGson.setTitle(image.getTitle());
imageGson.setImageFormat(image.getImageFormat());
imageGson.setDominantColor(image.getDominantColor());
return imageGson;
}
}
use of ai.elimu.model.content.Word in project webapp by elimu-ai.
the class JavaToGsonConverter method getVideoGson.
public static VideoGson getVideoGson(Video video) {
if (video == null) {
return null;
} else {
VideoGson videoGson = new VideoGson();
videoGson.setId(video.getId());
videoGson.setLocale(video.getLocale());
videoGson.setTimeLastUpdate(video.getTimeLastUpdate());
videoGson.setRevisionNumber(video.getRevisionNumber());
videoGson.setContentStatus(video.getContentStatus());
videoGson.setDownloadUrl("/video/" + video.getId() + "." + video.getVideoFormat().toString().toLowerCase());
videoGson.setDownloadSize(video.getBytes().length / 1024);
videoGson.setContentType(video.getContentType());
videoGson.setLiteracySkills(video.getLiteracySkills());
videoGson.setNumeracySkills(video.getNumeracySkills());
List<LetterGson> letters = new ArrayList<>();
for (Letter letter : video.getLetters()) {
LetterGson letterGson = getLetterGson(letter);
letters.add(letterGson);
}
videoGson.setLetters(letters);
List<NumberGson> numbers = new ArrayList<>();
for (Number number : video.getNumbers()) {
NumberGson numberGson = getNumberGson(number);
numbers.add(numberGson);
}
videoGson.setNumbers(numbers);
List<WordGson> words = new ArrayList<>();
for (Word word : video.getWords()) {
WordGson wordGson = getWordGson(word);
words.add(wordGson);
}
videoGson.setWords(words);
videoGson.setTitle(video.getTitle());
videoGson.setVideoFormat(video.getVideoFormat());
videoGson.setThumbnailDownloadUrl("/video/" + video.getId() + "/thumbnail.png");
return videoGson;
}
}
use of ai.elimu.model.content.Word in project webapp by elimu-ai.
the class JavaToGsonConverter method getAudioGson.
public static AudioGson getAudioGson(Audio audio) {
if (audio == null) {
return null;
} else {
AudioGson audioGson = new AudioGson();
audioGson.setId(audio.getId());
audioGson.setLocale(audio.getLocale());
audioGson.setTimeLastUpdate(audio.getTimeLastUpdate());
audioGson.setRevisionNumber(audio.getRevisionNumber());
audioGson.setContentStatus(audio.getContentStatus());
audioGson.setDownloadUrl("/audio/" + audio.getId() + "." + audio.getAudioFormat().toString().toLowerCase());
audioGson.setDownloadSize(audio.getBytes().length / 1024);
audioGson.setContentType(audio.getContentType());
audioGson.setLiteracySkills(audio.getLiteracySkills());
audioGson.setNumeracySkills(audio.getNumeracySkills());
List<LetterGson> letters = new ArrayList<>();
for (Letter letter : audio.getLetters()) {
LetterGson letterGson = getLetterGson(letter);
letters.add(letterGson);
}
audioGson.setLetters(letters);
List<NumberGson> numbers = new ArrayList<>();
for (Number number : audio.getNumbers()) {
NumberGson numberGson = getNumberGson(number);
numbers.add(numberGson);
}
audioGson.setNumbers(numbers);
List<WordGson> words = new ArrayList<>();
for (Word word : audio.getWords()) {
WordGson wordGson = getWordGson(word);
words.add(wordGson);
}
audioGson.setWords(words);
audioGson.setTranscription(audio.getTranscription());
audioGson.setAudioType(audio.getAudioFormat());
return audioGson;
}
}
use of ai.elimu.model.content.Word in project webapp by elimu-ai.
the class AllophoneUsageCountScheduler method execute.
// At 06:30 every day
@Scheduled(cron = "00 30 06 * * *")
public synchronized void execute() {
logger.info("execute");
for (Locale locale : Locale.values()) {
logger.info("Calculating usage count of Allophones for locale " + locale);
Map<String, Integer> allophoneFrequencyMap = new HashMap<>();
List<Allophone> allophones = allophoneDao.readAllOrdered(locale);
logger.info("allophones.size(): " + allophones.size());
List<Word> words = wordDao.readAllOrdered(locale);
logger.info("words.size(): " + words.size());
for (Word word : words) {
List<String> allophonesInWord = PhoneticsHelper.getAllophones(word);
for (String allophoneInWord : allophonesInWord) {
if (!allophoneFrequencyMap.containsKey(allophoneInWord)) {
allophoneFrequencyMap.put(allophoneInWord, word.getUsageCount());
} else {
allophoneFrequencyMap.put(allophoneInWord, allophoneFrequencyMap.get(allophoneInWord) + word.getUsageCount());
}
}
}
for (String allophoneIpa : allophoneFrequencyMap.keySet()) {
Allophone allophone = allophoneDao.readByValueIpa(locale, allophoneIpa);
allophone.setUsageCount(allophoneFrequencyMap.get(allophoneIpa));
allophoneDao.update(allophone);
}
}
logger.info("execute complete");
}
Aggregations