func (node *Node) remove(text string, root map[string]*Node) {
	textr := []rune(text)
	end := len(textr) - 1
	for i := 0; i <= end; i++ {
		word := string(textr[i])
		if n, ok := root[word]; ok {
			if i == end {
				n.Placeholders = ""
			} else {
				root = n.Child
			}
		} else {
			return
		}
	}
}
Remove specified sensitive words from sensitive word map.
package wordsfilter
import (
	"bytes"
	"strings"
)
type Node struct {
	Child        map[string]*Node
	Placeholders string
}
func NewNode(child map[string]*Node, placeholders string) *Node {
	return &Node{
		Child:        child,
		Placeholders: placeholders,
	}
}
func (node *Node) add(text string, root map[string]*Node, placeholder string) {
	if text == "" {
		return
	}
	textr := []rune(text)
	end := len(textr) - 1
	for i := 0; i <= end; i++ {
		word := string(textr[i])
		if n, ok := root[word]; ok {  
			if i == end {  
				n.Placeholders = strings.Repeat(placeholder, end+1)
			} else {
				if n.Child != nil {
					root = n.Child
				} else {
					root = make(map[string]*Node)
					n.Child = root
				}
			}
		} else {
			placeholders, child := "", make(map[string]*Node)
			if i == end {
				placeholders = strings.Repeat(placeholder, end+1)
			}
			root[word] = NewNode(child, placeholders)
			root = child
		}
	}
}