如何使用ruby计算Google的NL api段落中出现的名词数?
How to count the number of noun appeared in a paragraph with Google's NL api using ruby?
正在尝试使用 ruby 来计算 Google 的 NL api 段落中出现的名词数。
一直在查找文档,找不到如何执行此操作。
昨晚想出办法
text = 'xxxxxxxxxx'
response = language.analyze_syntax content: text, type: :PLAIN_TEXT
sentences = response.sentences
tokens = response.tokens
x= tokens.count
a = Array.new(x-1)
for i in 1..x
a[i-1] = tokens[i-1].part_of_speech.tag.to_s
end
for i in 1..x
if a[i-1] == 'NOUN'
num= num+1
end
end
仍然想知道 nl api https://cloud.google.com/natural-language/docs/analyzing-syntax#language-syntax-string-ruby 中是否存在类似 (tokens.noun.count ?) 的内容。
根据您的示例,您可以像这样计算 NOUN
的数量:
text = 'xxxxxxxxxx'
response = language.analyze_syntax content: text, type: :PLAIN_TEXT
tokens = response.tokens
tokens.count { |t| t.part_of_speech.tag.to_s == 'NOUN' }
注意在ruby中,像这样使用迭代器是非常常见的风格,而不是定义临时变量和使用for
循环。 (其实you should almost never find a need to use for
loops in ruby!)
这种干净、简洁的语法是 ruby 语言最大的吸引力之一。通常,您可以在一行代码中获得所需的结果,而不是所有这些临时数组和索引计数器声明。
正在尝试使用 ruby 来计算 Google 的 NL api 段落中出现的名词数。
一直在查找文档,找不到如何执行此操作。
昨晚想出办法
text = 'xxxxxxxxxx'
response = language.analyze_syntax content: text, type: :PLAIN_TEXT
sentences = response.sentences
tokens = response.tokens
x= tokens.count
a = Array.new(x-1)
for i in 1..x
a[i-1] = tokens[i-1].part_of_speech.tag.to_s
end
for i in 1..x
if a[i-1] == 'NOUN'
num= num+1
end
end
仍然想知道 nl api https://cloud.google.com/natural-language/docs/analyzing-syntax#language-syntax-string-ruby 中是否存在类似 (tokens.noun.count ?) 的内容。
根据您的示例,您可以像这样计算 NOUN
的数量:
text = 'xxxxxxxxxx'
response = language.analyze_syntax content: text, type: :PLAIN_TEXT
tokens = response.tokens
tokens.count { |t| t.part_of_speech.tag.to_s == 'NOUN' }
注意在ruby中,像这样使用迭代器是非常常见的风格,而不是定义临时变量和使用for
循环。 (其实you should almost never find a need to use for
loops in ruby!)
这种干净、简洁的语法是 ruby 语言最大的吸引力之一。通常,您可以在一行代码中获得所需的结果,而不是所有这些临时数组和索引计数器声明。