2014-11-18 3 views
0

Im пытается извлечь хэштег из списка, который im извлекает при использовании twiter api.Erlang, extract hashtag

Я использую это для извлечения хэштегом:

case extract(<<"entities">>, L) of 
    {found, {TE}} -> 
     {found, Hashtags} = extract(<<"hashtags">>, TE); 
    not_found -> Hashtags = hash_not_found 
    end, 

extract(K, L) -> 
case lists:keyfind(K, 1, L) of 
    {_, M} -> {found, M}; 
    false -> not_found 
end. 

Это дает мне хэштегом в формате:

[{[{<<"text">>,<<"London">>},{<<"indices">>,[120,127]}]}] 

Я желаю, чтобы извлечь хэштегом только из того, что было бы Лондон в этом случае. Этот тег будет отличаться каждый раз, когда я извлекаю твиты. Любая идея или предложение оценены.

Я не хочу менять прежний код, если мне действительно не нужно. Id предпочитает научиться извлекать из этого списка то, что мне нужно.

ответ

0

Гадание на то, что делает extract функция, что-то, как это должно работать:

case extract(<<"hashtags">>, TE) of 
    {found, Hashtags} -> 
    case extract(<<"text">>, Hashtags) of 
     {found, HashtagTexts} -> HashtagTexts; 
     not_found -> hash_not_found 
    end; 
    not_found -> hash_not_found 
end 

Смотрите также proplists модуль в стандартной библиотеке.

+0

Это не работает, если я не могу добавить какое-то предложение для {found, []}} в этом коде. – Erlach

+0

Как сказано, это зависит от того, как выполняется «extract». В чем разница между 'not_found' и' {found, []} '? –

+0

Мой код изменен. Я добавил функцию extract, если это помогает. – Erlach