Tokens None from previous component(RASA custom component) - Getting Started with Rasa / Tutorials, Resources & Videos - Rasa Community Forum
👋 Introducing the Rasa Playground
Tokens None from previous component(RASA custom component)
post by sairam on Feb 1, 2021
I created a custom component. I want to use tokens from the previous component, but I am getting "tokens none ". Please help me to solve this. Below is my “custom_component.py” code
from rasa.nlu.components import Component
from rasa.shared.nlu.training_data.message import Message
from fuzzywuzzy import process
class FuzzyExtractor(Component):
name = "FuzzyExtractor"
provides = ["entities"]
requires = ["tokens"]
defaults = {}
language_list = ["en"]
threshold = 90
def __init__(self, component_config=None, *args):
super(FuzzyExtractor, self).__init__(component_config)
def train(self, training_data, cfg, **kwargs):
pass
def process(self, message:Message, **kwargs):
print('message', message)
entities = list(message.get('entities'))
print('entities', entities)
tokens = message.get("tokens")
print('tokens', tokens)
message.set("entities", entities, add_to_output=True)
config.yml code
# Configuration for Rasa NLU.
# https://rasa.com/docs/rasa/nlu/components/
language: en
pipeline:
- name: WhitespaceTokenizer
- name: custom_component.FuzzyExtractor
- name: RegexFeaturizer
"case_sensitive": false
- name: LexicalSyntacticFeaturizer
- name: CountVectorsFeaturizer
- name: CountVectorsFeaturizer
analyzer: char_wb
min_ngram: 1
max_ngram: 4
- name: DIETClassifier
entity_recognition: False
epochs: 100
- name: "CRFEntityExtractor"
- name: EntitySynonymMapper
- name: ResponseSelector
epochs: 100
- name: DucklingEntityExtractor
url: http://localhost:8000
dimensions:
- time
- number
timezone: "Asia/Mumbai"
- name: FallbackClassifier
threshold: 0.5
# Configuration for Rasa Core.
# https://rasa.com/docs/rasa/core/policies/
policies:
# - name: MemoizationPolicy
# - name: TEDPolicy
# max_history: 5
# epochs: 100
# - name: RulePolicy
Rasa shell --debug logs
Next message:
hi
message <rasa.shared.nlu.training_data.message.Message object at 0x0000019811BE4DC8>
entities []
tokens None
post by souvikg10 on Feb 3, 2021
Try to replace it with tokens = [t.text for t in message.get(“tokens”)]
post by minlik on Oct 3, 2021
Have you ever solved this? I occured the same problem when I was trying to create my custom component.
post by souvikg10 on Oct 4, 2021
in rasa 2.6, I access tokens like this
tokens = [t.text for t in ex.get("text_tokens")]
where is ex is message object btw.
this will give you a list of tokens for every example