-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathqgram_test.go
96 lines (82 loc) · 8.35 KB
/
qgram_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package qgram
import (
"strings"
"testing"
)
func TestNGram(t *testing.T) {
tL := func(src string, wait string) {
t.Helper()
list := QGrams(strings.NewReader(src))
if strings.Join(list, " ") != wait {
println("wait: " + wait)
println("result: " + strings.Join(list, " "))
t.Fatalf("QGrams failed for: %s", src)
}
}
tP := func(src string, wait string) {
t.Helper()
list := Popular(strings.NewReader(src), 30)
if strings.Join(list, " ") != wait {
println("wait: " + wait)
println("result: " + strings.Join(list, " "))
t.Fatalf("Popular failed for: %s", src)
}
}
tSim := func(t1 string, t2 string, wait float64) {
t.Helper()
sim := Similarity(strings.NewReader(t1), strings.NewReader(t2))
simI := int(sim*1000000 + 0.5)
waitI := int(wait * 1000000)
if simI != waitI {
t.Fatalf("Similarity failed for %s and %s wait %f result %f", t1, t2, wait, sim)
}
}
tL("Hello, World!",
"_hel _wor ello hell ld__ llo_ lo_w o_wo orld rld_ worl")
tL("История тем и хороша, что потянешь за ниточку, а вытянешь ого-го сколько всего.",
"-го_ _а_в _все _выт _за_ _и_х _ист _нит _ого _пот _ско _тем _хор _что а_вы а_ни а_чт всег вытя го-г го__ го_с его_ ем_и ешь_ за_н и_хо исто иточ ия_т ко_в коль ку_а лько м_и_ нешь нито о-го о_вс о_по о_ск ого- ольк ория орош отян очку оша_ потя рия_ роша сего скол стор тем_ то_п тори точк тяне у_а_ хоро чку_ что_ ша_ч шь_з шь_о ытян ь_за ь_ог ько_ я_те янеш")
tP("Hello, World!",
"_hel _wor ello hell ld__ llo_ lo_w o_wo orld rld_ worl")
tP(`Среднеазиатскую овчарку в разных странах называют по-разному (в Туркменистане и Кыргызстане — алабай, в
Казахстане — тобет), но суть
остается одна и та же — эта собака вызывает огромное уважение.
Изначально среднеазиатская овчарка использовалась для защиты домашнего скота, но сегодня ей доверяют
охранять и частные владения.
Популярность среднеазиатской овчарки обусловлена огромной физической силой собаки, а также умом и смекалкой,
способностью принимать самостоятельные решения.
С этой собакой обязательно нужно ладить, потому как ошибок она не прощает. Даже хозяину.`,
"кой_ ой_с _овч _соб _сре азиа ане_ атск вчар днеа еази едне зиат иатс неаз но_с обак овча редн соба сред стан тане чарк _но_ _огр ает_ гром ельн ения")
tP(`Способна ли наука возродить динозавров?
На сегодняшний день ученые умеют не только отправлять людей в космос, но и редактировать гены и даже клонировать животных.
Исходя из всего этого возникает вопрос — почему человечеству все еще не удалось воскресить динозавров? Ведь раскопки их
костей ведутся очень давно и весьма успешно. На самом деле, когда-нибудь человечество может и научится воскрешать полностью
вымерших созданий. Только вот на сегодняшний день мы на это совершенно не способны, потому что нам мешает огромное количество
технических проблем. В рамках этого материала предлагаем разобрать самые главные причины того, почему ученые все еще не
воскресили динозавров и не создали реальный «Парк юрского периода». Уж поверьте, если бы перед исследователями не стояли
упомянутые выше преграды, такой парк бы уже давно был создан.
В теории, ученые могут воскресить динозавров, но это очень сложно
Возрождение мамонтов
Первая проблема заключается в том, что динозавры жили миллионы лет назад. А ученые пока не могут воскресить даже мамонтов,
последний из которых погиб всего лишь 4000 лет назад. У ученых, казалось бы, есть все необходимое для того, чтобы
восстановить популяцию покрытых густой шерстью древних слонов. Благодаря тому, что большинство из них обитало на
территории нынешней Сибири, их тела на протяжении тысяч лет хранились в холодных условиях. Они отлично сохранились и у
исследователей есть даже образцы ДНК мамонтов. Более того, из некоторых останков ученые уже извлекли клеточные ядра и
им всего-то нужно пересадить их в тела другого млекопитающего — в итоге должен родиться мамонт. Современные слоны могут
легко выносить мамонтенка, но ученые не спешат этого делать, потому что существует еще множество других технических проблем,
которые обычным людям даже непонятны.
Возродить мамонта легче, чем динозавра
Возрождение динозавров
С динозаврами дела обстоят гораздо сложнее. Ученым удается обнаруживать кости, но мягкие ткани, из которых можно извлечь
клетки, на протяжении миллионов лет были уничтожены. Огромные динозавры, воскрешения которых многие хотят увидеть, вымерли
66 миллионов лет назад. А ведь ДНК так долго храниться попросту не может. Хотя, может быть, когда-нибудь человечеству
все-таки удастся обнаружить хорошо сохранившееся тело динозавра. Ведь мало ли, вдруг какая-нибудь особь забрела в холодные
земли, погибла и на данный момент лежит в идеальных для сохранения мягких тканей условиях? Недавно ученым удалось обнаружить
тело динозавра, в желудке которого были найдены остатки пищи. Эта новость сильно обнадеживает.
`, "_дин дино завр иноз ноза ные_ озав ить_ _не_ _уче ого_ учен чены _на_ _вос _все _мам амон ать_ воск еные еств кото мамо монт оскр отор скре того _воз")
tSim("Привет, Мир!", "Всем привет", 0.3125)
tSim("Привет, Мир!", "Hello, Wordl!", 0)
tSim("Привет, Мир!", "привет, как ваши дела?", 0.2)
tSim("Привет, Мир!", "привет, что нам расскажите?", 0.166667)
tSim("Что нам расскажите? привет!", "привет, что нам расскажите?", 0.785714)
tSim("", "", 1)
}