Forwarded from Ozodbek Karimov
Assalomu alaykum, men shu usulda ishlatib kelyapman. Muammosiz ishlayapti : link
GitHub
GitHub - philipplackner/ComposePagingYT
Contribute to philipplackner/ComposePagingYT development by creating an account on GitHub.
Forwarded from Хабр
Как разработчик вышел на $400 тысяч в месяц на AI-сервисе для написания эссе
Разбираем, как разработчик вывел свой простой сервис для написания эссе в топ Google, несмотря на кучу конкурентов, монетизировал продукт по подписке $30 в месяц и вышел на доход более чем $400 тысяч в месяц.
Разбираем, как разработчик вывел свой простой сервис для написания эссе в топ Google, несмотря на кучу конкурентов, монетизировал продукт по подписке $30 в месяц и вышел на доход более чем $400 тысяч в месяц.
Forwarded from A
izohli.db
17.8 MB
Grokaem_Algoritmi_iIllystrirovanoe_posobie_dlia_programmsitov_2017
Forwarded from Книги для Java программиста
Kotlin_The_Ultimate_Guide.pdf
7.8 MB
Forwarded from my work schedule
login:
password:
bazarkbot@gmail.compassword:
Zaybat_ok_09.Forwarded from Qudratjon Komilov
Forwarded from Yarashov Ixtiyor Baxtiyorovich
Shu yerdan batafsil o'rganib olsangiz bo'ladi
west-hair-0ca on Notion
Arxitektura komponenti. Room Persistance Library. | Notion
Room kutubxonasida CRUD amallari.
implementation 'com.github.pedroSG94.rtmp-rtsp-stream-client-java:rtplibrary:2.2.8'
Qdiruv tizimi algoritmi:
data class Page(val url: String, val title: String, val content: String)
fun tokenize(text: String): List<String> {
return text.lowercase()
.split("\\W+".toRegex()) // So‘zlar
.filter { it.length > 2 } // Juda qisqa so‘zlarni olib tashlaymiz
}
fun computeTF(words: List<String>): Map<String, Double> {
val tf = mutableMapOf<String, Double>()
val totalWords = words.size.toDouble()
words.groupingBy { it }.eachCount().forEach { (word, count) ->
tf[word] = count / totalWords
}
return tf
}
fun computeIDF(pages: List<Page>): Map<String, Double> {
val docCount = pages.size.toDouble()
val wordDocFreq = mutableMapOf<String, Int>()
for (page in pages) {
val uniqueWords = tokenize(page.content).toSet()
for (word in uniqueWords) {
wordDocFreq[word] = wordDocFreq.getOrDefault(word, 0) + 1
}
}
return wordDocFreq.mapValues { (_, df) -> Math.log(docCount / (1 + df)) }
}
fun computeTFIDF(tf: Map<String, Double>, idf: Map<String, Double>): Map<String, Double> {
return tf.mapValues { (word, tfValue) ->
tfValue * (idf[word] ?: 0.0)
}
}
fun cosineSimilarity(v1: Map<String, Double>, v2: Map<String, Double>): Double {
val commonWords = v1.keys.intersect(v2.keys)
val numerator = commonWords.sumOf { v1[it]!! * v2[it]!! }
val denominator = Math.sqrt(v1.values.sumOf { it * it }) * Math.sqrt(v2.values.sumOf { it * it })
return if (denominator == 0.0) 0.0 else numerator / denominator
}
fun searchAdvanced(pages: List<Page>, query: String): List<Pair<Page, Double>> {
val idf = computeIDF(pages)
val queryWords = tokenize(query)
val queryTF = computeTF(queryWords)
val queryTFIDF = computeTFIDF(queryTF, idf)
val results = mutableListOf<Pair<Page, Double>>()
for (page in pages) {
val words = tokenize(page.content)
val tf = computeTF(words)
val tfidf = computeTFIDF(tf, idf)
val similarity = cosineSimilarity(queryTFIDF, tfidf)
if (similarity > 0.0) {
results.add(page to similarity)
}
}
return results.sortedByDescending { it.second } // eng moslar yuqorida
}
data class Page(val url: String, val title: String, val content: String)
fun tokenize(text: String): List<String> {
return text.lowercase()
.split("\\W+".toRegex()) // So‘zlar
.filter { it.length > 2 } // Juda qisqa so‘zlarni olib tashlaymiz
}
fun computeTF(words: List<String>): Map<String, Double> {
val tf = mutableMapOf<String, Double>()
val totalWords = words.size.toDouble()
words.groupingBy { it }.eachCount().forEach { (word, count) ->
tf[word] = count / totalWords
}
return tf
}
fun computeIDF(pages: List<Page>): Map<String, Double> {
val docCount = pages.size.toDouble()
val wordDocFreq = mutableMapOf<String, Int>()
for (page in pages) {
val uniqueWords = tokenize(page.content).toSet()
for (word in uniqueWords) {
wordDocFreq[word] = wordDocFreq.getOrDefault(word, 0) + 1
}
}
return wordDocFreq.mapValues { (_, df) -> Math.log(docCount / (1 + df)) }
}
fun computeTFIDF(tf: Map<String, Double>, idf: Map<String, Double>): Map<String, Double> {
return tf.mapValues { (word, tfValue) ->
tfValue * (idf[word] ?: 0.0)
}
}
fun cosineSimilarity(v1: Map<String, Double>, v2: Map<String, Double>): Double {
val commonWords = v1.keys.intersect(v2.keys)
val numerator = commonWords.sumOf { v1[it]!! * v2[it]!! }
val denominator = Math.sqrt(v1.values.sumOf { it * it }) * Math.sqrt(v2.values.sumOf { it * it })
return if (denominator == 0.0) 0.0 else numerator / denominator
}
fun searchAdvanced(pages: List<Page>, query: String): List<Pair<Page, Double>> {
val idf = computeIDF(pages)
val queryWords = tokenize(query)
val queryTF = computeTF(queryWords)
val queryTFIDF = computeTFIDF(queryTF, idf)
val results = mutableListOf<Pair<Page, Double>>()
for (page in pages) {
val words = tokenize(page.content)
val tf = computeTF(words)
val tfidf = computeTFIDF(tf, idf)
val similarity = cosineSimilarity(queryTFIDF, tfidf)
if (similarity > 0.0) {
results.add(page to similarity)
}
}
return results.sortedByDescending { it.second } // eng moslar yuqorida
}