本文整理匯總了Golang中golang.org/x/text/transform.RemoveFunc函數的典型用法代碼示例。如果您正苦於以下問題:Golang RemoveFunc函數的具體用法?Golang RemoveFunc怎麽用?Golang RemoveFunc使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了RemoveFunc函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: NormalizeTitle
func NormalizeTitle(title string) string {
normalizedTitle := title
normalizedTitle = strings.ToLower(normalizedTitle)
normalizedTitle = RomanizeHepburn(title)
normalizedTitle = strings.ToLower(normalizedTitle)
normalizedTitle = RemoveTrailingApostrophe(normalizedTitle)
normalizedTitle, _, _ = transform.String(transform.Chain(
norm.NFD,
transform.RemoveFunc(func(r rune) bool {
return unicode.Is(unicode.Mn, r)
}),
norm.NFC), normalizedTitle)
normalizedTitle = strings.ToLower(normalizedTitle)
normalizedTitle = regexp.MustCompile(`\(\d+\)`).ReplaceAllString(normalizedTitle, " ")
normalizedTitle = strings.Map(func(r rune) rune {
if !unicode.IsLetter(r) && !unicode.IsDigit(r) && r != '.' {
return ' '
}
return r
}, normalizedTitle)
normalizedTitle = regexp.MustCompile(`\s+`).ReplaceAllString(normalizedTitle, " ")
normalizedTitle = strings.TrimSpace(normalizedTitle)
return normalizedTitle
}
示例2: init
func init() {
words = make(map[string]int)
count = 0
amz = "./amazon_cells_labelled.txt"
ylp = "./yelp_labelled.txt"
imd = "./imdb_labelled.txt"
sanitize = transform.RemoveFunc(func(r rune) bool {
switch {
case r >= 'A' && r <= 'Z':
return false
case r >= 'a' && r <= 'z':
return false
case r >= '0' && r <= '1':
return false
case r == ' ':
return false
case r == '\t':
return false
default:
return true
}
})
rand.Seed(42)
}
示例3: main
func main() {
t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC)
r := transform.NewReader(os.Stdin, t)
if _, err := io.Copy(os.Stdout, r); err != nil {
log.Fatal(err)
}
}
示例4: removeNlChars
func removeNlChars(str string) string {
isOk := func(r rune) bool {
return r < 32 || r >= 127
}
t := transform.Chain(norm.NFKD, transform.RemoveFunc(isOk))
str, _, _ = transform.String(t, str)
return str
}
示例5: TestLettersShouldPass1
func TestLettersShouldPass1(t *testing.T) {
s, _, _ := transform.String(transform.RemoveFunc(OnlyLetters), "THIS iz A L337 aNd Un'Sani~~~~tized sentence")
sanitized := []rune(s)
for i := range sanitized {
assert.False(t, OnlyLetters(sanitized[i]), "Letter %v should be sanitized", sanitized[i])
}
}
示例6: NewNaiveBayes
// NewNaiveBayes returns a NaiveBayes model the
// given number of classes instantiated, ready
// to learn off the given data stream. The sanitization
// function is set to the given function. It must
// comply with the transform.RemoveFunc interface
func NewNaiveBayes(stream <-chan base.TextDatapoint, classes uint8, sanitize func(rune) bool) *NaiveBayes {
return &NaiveBayes{
Words: make(map[string]Word),
Count: make([]uint64, classes),
Probabilities: make([]float64, classes),
sanitize: transform.RemoveFunc(sanitize),
stream: stream,
}
}
示例7: RestoreWithFuncs
// RestoreWithFuncs takes raw JSON data of a model and
// restores a model from it. The tokenizer and sanitizer
// passed in will be assigned to the restored model.
func (b *NaiveBayes) RestoreWithFuncs(data io.Reader, sanitizer func(rune) bool, tokenizer Tokenizer) error {
if b == nil {
return errors.New("Cannot restore a model to a nil pointer")
}
err := json.NewDecoder(data).Decode(b)
if err != nil {
return err
}
b.sanitize = transform.RemoveFunc(sanitizer)
b.Tokenizer = tokenizer
return nil
}
示例8: stripCtlAndExtFromUnicode
//function to sanitize input
//from: http://rosettacode.org/wiki/Strip_control_codes_and_extended_characters_from_a_string#Go
func stripCtlAndExtFromUnicode(str string) string {
isOk := func(r rune) bool {
return r < 32 || r >= 127
}
// The isOk filter is such that there is no need to chain to norm.NFC
t := transform.Chain(norm.NFKD, transform.RemoveFunc(isOk))
// This Transformer could also trivially be applied as an io.Reader
// or io.Writer filter to automatically do such filtering when reading
// or writing data anywhere.
str, _, _ = transform.String(t, str)
return str
}
示例9: NewNaiveBayes
// NewNaiveBayes returns a NaiveBayes model the
// given number of classes instantiated, ready
// to learn off the given data stream. The sanitization
// function is set to the given function. It must
// comply with the transform.RemoveFunc interface
func NewNaiveBayes(stream <-chan base.TextDatapoint, classes uint8, sanitize func(rune) bool) *NaiveBayes {
return &NaiveBayes{
Words: concurrentMap{sync.RWMutex{}, make(map[string]Word)},
Count: make([]uint64, classes),
Probabilities: make([]float64, classes),
sanitize: transform.RemoveFunc(sanitize),
stream: stream,
Tokenizer: &SimpleTokenizer{SplitOn: " "},
Output: os.Stdout,
}
}
示例10: TestAsciiLetters
func TestAsciiLetters(t *testing.T) {
tests := []testCase{
{"THIS iz A L337 aNd Un'Sani~~~~tized sentence", "THISizALaNdUnSanitizedsentence"},
{"here're some unicode letters: --Æ.ÒÑ", "hereresomeunicodeletters"},
{")(*&^%[email protected][email protected]#$%^&*(*&^%$#@#$%", ""},
}
for _, test := range tests {
s, _, _ := transform.String(transform.RemoveFunc(OnlyAsciiLetters), test.input)
if s != test.expectedOutput {
t.Errorf("got \"%s\" expected \"%s\"\n", s, test.expectedOutput)
}
}
}
示例11: GetCompatibleString
// GetCompatibleString removes all the special characters
// from the string name to create a new string compatible
// with different file names.
func GetCompatibleString(name string) string {
// Replace all the & signs with and text
name = strings.Replace(name, "&", "and", -1)
// Change all the characters to ASCII
t := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC)
result, _, _ := transform.String(t, name)
// Replace all the spaces with underscore
s, _ := regexp.Compile(`\s+`)
result = s.ReplaceAllString(result, "_")
// Remove all the non alphanumeric characters
r, _ := regexp.Compile(`\W`)
result = r.ReplaceAllString(result, "")
return result
}
示例12: ExampleRemoveFunc
func ExampleRemoveFunc() {
input := []byte(`tschüß; до свидания`)
b := make([]byte, len(input))
t := transform.RemoveFunc(unicode.IsSpace)
n, _, _ := t.Transform(b, input, true)
fmt.Println(string(b[:n]))
t = transform.RemoveFunc(func(r rune) bool {
return !unicode.Is(unicode.Latin, r)
})
n, _, _ = t.Transform(b, input, true)
fmt.Println(string(b[:n]))
n, _, _ = t.Transform(b, norm.NFD.Bytes(input), true)
fmt.Println(string(b[:n]))
// Output:
// tschüß;досвидания
// tschüß
// tschuß
}
示例13: normalize
func normalize(name, src string) (string, error) {
if name == "" {
name = baseWithoutExt(src)
}
t := transform.Chain(norm.NFD, transform.RemoveFunc(remove), norm.NFC)
name = strings.TrimSpace(name)
name, _, err := transform.String(t, name)
if err != nil {
return "", err
}
name = strings.ToLower(name)
name = strings.Replace(name, " ", "_", -1)
return name, nil
}
示例14: normalize
// normalize does unicode normalization.
func normalize(in []byte) ([]byte, error) {
// We need a new transformer for each input as it cannot be reused.
filter := func(r rune) bool {
return unicode.Is(unicode.Mn, r) // Mn: nonspacing marks (to be removed)
}
transformer := transform.Chain(norm.NFD, transform.RemoveFunc(filter), norm.NFC)
out, _, err := transform.Bytes(transformer, in)
out = bytes.Map(func(r rune) rune {
if unicode.IsPunct(r) { // Replace punctuations with spaces.
return ' '
}
return unicode.ToLower(r) // Convert to lower case.
}, out)
return out, err
}
示例15: replace
func replace(path string) {
copy := []string{}
r := `(<script(\s|\S)*?<\/script>)|(<style(\s|\S)*?<\/style>)|(<!--(\s|\S)*?-->)|(<\/?(\s|\S)*?>)|(nbsp;)|((?:\s)\s)|(png)|(jpeg)|(jpg)|(mpg)|(\\u0026)|(\n)|(\v)|(\r)|(\0)|(\t)|(n°)
|(à)|(wbe)|(_)`
regex, err := regexp.Compile(r)
if err != nil {
return // there was a problem with the regular expression.
}
c, _ := readLines(path)
for _, v := range c {
reg := regex.ReplaceAllString(v, " ")
slug := utils.GenerateSlug(reg)
regex1, _ := regexp.Compile(`((\-){1,})|(\b\w{1}\b)`)
reg = regex1.ReplaceAllString(slug, " ")
t := stripchars(reg, `?,.!/©*@#~()$+"'&}]|:;[{²`)
s := strings.TrimSpace(t)
// fmt.Println(s)
normalize := transform.Chain(norm.NFD, transform.RemoveFunc(isMn), norm.NFC)
normStr1, _, _ := transform.String(normalize, s)
// fmt.Println(normStr1)
if len(v) > 0 {
copy = append(copy, normStr1)
}
}
// fmt.Println(cleaned, "\n")
j := strings.Replace(strings.Join((copy), " "), " ", ",", -1)
// fmt.Println(j)
regex2, err := regexp.Compile(`((\,){2,})`)
j1 := regex2.ReplaceAllString(j, ",")
// fmt.Println(j1)
j2 := strings.Split(j1, ",")
cleaned := []string{}
for _, value := range j2 {
if !stringInSlice(value, cleaned) {
cleaned = append(cleaned, value)
}
}
createCsv(path, filenameCsv, strings.Join(cleaned, ","))
}