Python 3’te milyonlarca normal ifade değişimini hızlandırın

| | | | | | | | | | | | | |

İki listem var:

  • yaklaşık 750K "cümleler" (uzun dizeler)
  • 750K cümlemden silmek istediğim yaklaşık 20K "kelime" listesi

Öyleyse, 750K cümle arasında dolaşmak ve yaklaşık 20K değiştirme yapmak için, ancak SADECE kelimelerim gerçekten "kelimeler" ise ve daha büyük bir karakter dizisinin parçası değilse.

Bunu, kelimelerimi, yanlarında kelime sınırı meta karakteri olacak şekilde önceden derleyerek yapıyorum:

compiled_words = [re.compile(r"" + kelime + r"") my20000words'deki kelime için] 

Sonra " cümleler":

cümleler için yeniden içe aktar: derlenmiş_kelimelerdeki kelime için: cümle = re.sub(kelime, "quot;, cümle) # cümleyi büyüyen bir cümleye koy list 

Bu iç içe döngü yaklaşık 50 cümle işliyor es per second, bu güzel bir şey ama yine de tüm cümlelerimi işlemek birkaç saat sürüyor.

  • str. replace yöntemi (ki bunun daha hızlı olduğuna inanıyorum), ancak yine de değiştirmelerin yalnızca kelime sınırlarında olmasını gerektiriyor?

  • Alternatif olarak, var mı? re.sub yöntemini hızlandırmanın bir yolu var mı? Kelimemin uzunluğu > ise re.sub öğesini atlayarak hızı marjinal olarak artırdım. cümlemin uzunluğundan daha uzun, ancak bu pek bir gelişme sayılmaz.

Python 3.5.2 kullanıyorum