Ich versuche, die Ähnlichkeit zwischen Strings zu messen, indem ich Dice's Coefficient (aka Pair Similarity) in BigQuery verwende. Für eine Sekunde dachte ich, dass ich das nur mit Standardfunktionen machen kann.REGEXP_REPLACE Muster muss const sein? Strings in BigQuery vergleichen
Angenommen, ich muss "Gana" und "Gano" vergleichen. Dann würde ich „kochen“ diese beiden Saiten im Voraus, in ‚ga | eine | na‘ und ‚ga | eine | no‘ (Listen von 2-Gramm) und dies tun:
REGEXP_REPLACE('ga|an|na', 'ga|an|no', '')
dann basierend auf einer Änderung in der Länge Ich kann meinen Koeff berechnen.
Aber einmal auf die Tabelle angewandt, erhalte ich:
REGEXP_REPLACE zweites Argument
Gibt es eine Abhilfe für das const und nicht-null sein muss? Mit dem einfachen REPLACE() zweiten Argument kann ein Feld sein.
Vielleicht gibt es einen besseren Weg, es zu tun? Ich weiß, ich kann stattdessen UDF tun. Aber ich wollte sie hier vermeiden. Wir führen große Aufgaben aus, und UDFs sind im Allgemeinen (zumindest in meiner Erfahrung) langsamer und unterliegen einem unterschiedlichen Grenzwert für den gemeinsamen Zugriff.
Wenn eine Antwort hat Ihnen geholfen, Ihr Problem zu lösen und du akzeptierst es, du solltest darüber nachdenken, es zu wählen. Weitere Informationen finden Sie unter http://stackoverflow.com/help/someone-answers und im Abschnitt "Upvote" in http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work#5235 –