use*_*614 24 sentiment-analysis
我在SO上发现了上一个问题:N-gram:解释+ 2个应用程序.OP给出了这个例子并询问它是否正确:
Sentence: "I live in NY."
word level bigrams (2 for n): "# I', "I live", "live in", "in NY", 'NY #'
character level bigrams (2 for n): "#I", "I#", "#l", "li", "iv", "ve", "e#", "#i", "in", "n#", "#N", "NY", "Y#"
When you have this array of n-gram-parts, you drop the duplicate ones and add a counter for each part giving the frequency:
word level bigrams: [1, 1, 1, 1, 1]
character level bigrams: [2, 1, 1, ...]
Run Code Online (Sandbox Code Playgroud)
答案部分有人证实这是正确的,但不幸的是我有点失落,因为我没有完全理解所说的其他一切!我正在使用LingPipe并按照教程说明我应该选择7到12之间的值 - 但不说明原因.
什么是良好的nGram值,在使用像LingPipe这样的工具时应该如何考虑它?
编辑:这是教程:http://cavajohn.blogspot.co.uk/2013/05/how-to-sentiment-analysis-of-tweets.html
zou*_*oul 41
N-gram只是您可以在源文本中找到的相邻单词或长度为n的字母的所有组合.例如,根据这个词fox
,所有2克(或"双胞胎")都是fo
和ox
.您也可以统计单词边界-这将扩大2克的清单#f
,fo
,ox
,和x#
,其中#
表示单词边界.
您可以在单词级别上执行相同操作.作为一个例子,该hello, world!
文本包含下列字级二元语法:# hello
,hello world
,world #
.
n-gram的基本观点是它们从统计的角度捕捉语言结构,就像字母或单词可能遵循给定的一样.时间越长,正克(越高ñ),你必须与之合作的更多内容.最佳长度实际上取决于应用 - 如果你的n-gram太短,你可能无法捕捉到重要的差异.另一方面,如果它们太长,你可能无法捕捉到"一般知识",只能坚持特定情况.