Python: libphonenumber — не удается извлечь очевидные телефонные номера

Я использую Python-версию libphonenumbers от Google, но когда я попробовал эту библиотеку с разными текстами, иногда функция python ничего мне не вернет, в то время как совершенно очевидно, что там есть номер телефона, а иногда они действительно возвращают номера телефонов. Пожалуйста, смотрите ниже:

print(x2)
for match in pnum.PhoneNumberMatcher(x2, "US"):
print(match) #for the text above, it did not get the number

выход:

I just read your profile and thought it was really great. I also thought you were cute and loved the fact that you go hiking with your brothers every summer. If you want to know anything more about me, just ask.  My num 555-121-5468.

С этим текстом выше он не возвращает мне номер телефона. Но в другой ситуации, подобной следующей, эта функция дает мне правильный ввод:

x9 = "hay I hate to cut you short, its been fun chatting, but unfortuantely I gotta run. I am gald we became friends though. my number is (323) 2387890"

 for match in pnum.PhoneNumberMatcher(x9, "US"):
 print(match)

выход:

 PhoneNumberMatch [132,145) (323) 2387890

Я не знаю, в чем проблема, вызывающая эту проблему, я новичок в Python и этой библиотеке и был бы искренне признателен за понимание.


person lll    schedule 25.09.2016    source источник


Ответы (1)


555-121-5468 выглядит как действительный номер телефона в США, но на самом деле это не так.

конструктор класса PhoneNumberMatcher принимает leniency, который определяет, насколько строго класс соответствует телефонным номерам-кандидатам (код). Возможные значения этого аргумента Значение по умолчанию для leniency равно 1, что соответствует только действительным телефонным номерам. Изменение этого параметра на 0 будет соответствовать возможным телефонным номерам, таким как 555-121-5468.

>>> for match in pnum.PhoneNumberMatcher(x2, 'US', leniency=0): 
print(match) 
...
PhoneNumberMatch [220,232) 555-121-5468

Префикс 555 не является настоящим префиксом, он используется для вымышленных телефонных номеров на телевидении и в кино США. Из Википедии:

Телефонные номера с префиксом 555 широко используются в качестве фиктивных телефонных номеров в североамериканских телешоу, фильмах, видеоиграх и других средствах массовой информации, чтобы помешать шутникам и любопытным звонящим беспокоить реальных людей и организации телефонными номерами, которые они видят в произведениях художественная литература; как правило, в Северной Америке номер с префиксом 555 не связывается с реальным человеком.

person snakecharmerb    schedule 20.05.2017