2016-03-17 2 views
2

Мне было интересно, как вы могли бы обнаружить все числовые слова во фразе. НапримерPython - Как найти все числовые слова во фразе?

math_str = "one times one plus sin(one hundred fifty three) minus three billion" 
getNumberWords(math_str) #Returns one, one, one hundred fifty three, three billion 

Есть ли шаблон регулярного выражения или что-то в этом роде?

+2

Это непростая задача. И без вашего кода, чтобы улучшить никого здесь, можно многое сделать. –

+0

Ну, «три миллиарда» можно было бы сопоставить как «три» и «миллиард». – Goodies

+1

Если вы знаете свои данные, вы можете взглянуть на [word2number] (https://pypi.python.org/pypi/word2number) – Jan

ответ

1

Там нет ярлыка для этого, как питон не понимает по-английски или на человеческом языке, вам необходимо иметь список слов, которые считаются числовыми словами

math_str = "one times one plus sin(one hundred fifty three) minus three billion" 
allowed = ['one', 'three', 'fifty', 'hundred', 'thousand', 'million', 'billion'] 

def getNumberWords(math_str): 
    math_str = math_str.replace('(', ' ') 
    math_str = math_str.replace(')', ' ') 
    math_str = math_str.split() 

    return [word for word in math_str if word in allowed] 

print(getNumberWords(math_str)) 

в этом примере я просто положить в количестве слова, необходимые для получения вашего результата, но вы будете заполнять много слов (числовых), если вы хотите, чтобы ваш результат был точным

+0

Спасибо! Я думаю, это самое близкое, что я собираюсь получить. –

 Смежные вопросы

  • Нет связанных вопросов^_^