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
}
val pages = crawl("https://kun.uz", depth = 1)
val results = searchAdvanced(pages, "yangiliklar texnologiya")
for ((page, score) in results.take(10)) {
println("🔗 ${page.title} (${page.url}) — score: %.4f".format(score))
}
val results = searchAdvanced(pages, "yangiliklar texnologiya")
for ((page, score) in results.take(10)) {
println("🔗 ${page.title} (${page.url}) — score: %.4f".format(score))
}
Kun.uz
Kun.uz — O‘zbekiston va jahon yangiliklari | So‘nggi xabarlar
Kun.uz — O‘zbekistonning eng yirik yangiliklar portali. Siyosat, iqtisodiyot, jamiyat, sport va jahon yangiliklari kunlik tartibda.
Forwarded from Qwerty (Abdurashid)
1. Нажатие на экран назад в полноэкранном режиме должно привести к выходу из полноэкранного режима.
2. Я рассмотрю звук
3. Увеличение в полноэкранном режиме
Я добавлю такую возможность.
4. Видео затемняются при первом входе в программу
Спасибо, я разберусь с проблемами.
2. Я рассмотрю звук
3. Увеличение в полноэкранном режиме
Я добавлю такую возможность.
4. Видео затемняются при первом входе в программу
Спасибо, я разберусь с проблемами.
Forwarded from Qisqa & Foydali kodlar° (ShaXzod °)
openbudbot_pcode.zip
132.8 KB
openbudget.uz loyihasi uchun bot namunasi.
PS. botni ishlatish uchun tasix hostingda ishga tushirish kerak.
PS2. Zerikishdan yozilgan bot va kamchiliklarga ega.
PS. botni ishlatish uchun tasix hostingda ishga tushirish kerak.
PS2. Zerikishdan yozilgan bot va kamchiliklarga ega.