Table.FuzzyGroup
Ομαδοποιεί τις γραμμές στον πίνακα με βάση την ασαφή συμφωνία κλειδιών.
Syntax
Table.FuzzyGroup(
table as table,
key as any,
aggregatedColumns as list,
optional options as record
) as table
Remarks
Ομαδοποιεί τις γραμμές table με την ασαφή συμφωνία τιμών στην καθοριζόμενη στήλη, key, για κάθε γραμμή. Για κάθε ομάδα, κατασκευάζεται μια εγγραφή που περιέχει τις στήλες κλειδιών (και τις τιμές τους) μαζί με τυχόν συγκεντρωτικές στήλες που έχουν καθοριστεί από aggregatedColumns. Αυτή η συνάρτηση δεν μπορεί να εγγυηθεί την επιστροφή μιας σταθερής σειράς γραμμών.
Ένα προαιρετικό σύνολο options μπορεί να συμπεριληφθεί για να καθοριστεί ο τρόπος σύγκρισης των στηλών κλειδιού. Οι επιλογές περιλαμβάνουν:
Culture: Επιτρέπει την ομαδοποίηση εγγραφών με βάση συγκεκριμένους κανόνες κουλτούρας. Μπορεί να είναι οποιοδήποτε έγκυρο όνομα κουλτούρας. Για παράδειγμα, η επιλογή κουλτούρας "ja-JP" ομαδοποιεί ε γγραφές βάσει της ιαπωνικής κουλτούρας. Η προεπιλεγμένη τιμή είναι "", με την οποία οι ομάδες βασίζονται στην αμετάβλητη αγγλική κουλτούρα.IgnoreCase: Μια λογική τιμή (true/false) που επιτρέπει την ομαδοποίηση κλειδιών χωρίς διάκριση πεζών-κεφαλαίων. Για παράδειγμα, όταν είναι true, η λέξη "Σταφύλια" ομαδοποιείται με τη λέξη "σταφύλια". Η προεπιλεγμένη τιμή είναι true.IgnoreSpace: Μια λογική τιμή (true/false) που επιτρέπει τον συνδυασμό τμημάτων κειμένου με σκοπό την εύρεση ομάδων. Για παράδειγμα, όταν είναι true, οι λέξεις "Στα φύλια" ομαδοποιούνται με τη λέξη "Σταφύλια". Η προεπιλεγμένη τιμή είναι true.SimilarityColumnName: Ένα όνομα για τη στήλη που εμφανίζει την ομοιότητα μεταξύ μιας τιμής εισόδου και της αντιπροσωπευτικής τιμής για αυτή την είσοδο. Η προεπιλεγμένη τιμή είναι null, στην οποία περίπτωση δεν θα προστεθεί νέα στήλη για ομοιότητες.Threshold: Ένας αριθμός μεταξύ 0,00 και 1,00 που καθορίζει τη βαθμολογία ομοιότητας στην οποία θα ομαδοποιηθούν δύο τιμές. Για παράδειγμα, το "Grapes" και το "Graes" (λείπει το "p") ομαδοποιούνται μόνο αν αυτή η επιλογή έχει οριστεί σε λιγότερο από 0,90. Ένα όριο 1,00 επιτρέπει μόνο ακριβείς αντιστοιχίσεις. (Σημειώστε ότι ένα ασαφές "ακριβές ταίριασμα" μπορεί να αγνοήσει διαφορές όπως το περίβλημα, η σειρά λέξεων και τα σημεία στίξης.) Η προεπιλεγμένη τιμή είναι 0,80.TransformationTable: Ένας πίνακας που επιτρέπει την ομαδοποίηση εγγραφών βάσει προσαρμοσμένων αντιστοιχίσεων τιμών. Θα πρέπει να περιέχει στήλες "από" και "προς". Για παράδειγμα, Η λέξη "Σταφύλια" ομαδοποιείται με τη λέξη "Σταφίδες" αν έχει παρασχεθεί πίνακας μετασχηματισμού με τη λέξη "Σταφύλια" στη στήλη "από" και τη λέξη "Σταφίδες" στη στήλη "προς". Λάβετε υπόψη ότι ο μετασχηματισμός θα εφαρμοστεί σε όλες τις εμφανίσεις του κειμένου στον πίνακα μετασχηματισμού. Με τον παραπάνω πίνακα μετασχηματισμού, η φράση "θέλω σταφύλια" θα ομαδοποιηθεί επίσης με τη φράση "θέλω σταφίδες".
Examples
Example #1
Group the table adding an aggregate column [Count] that contains the number of employees in each location (each Table.RowCount(_)).
Table.FuzzyGroup(
Table.FromRecords(
{
[EmployeeID = 1, Location = "Seattle"],
[EmployeeID = 2, Location = "seattl"],
[EmployeeID = 3, Location = "Vancouver"],
[EmployeeID = 4, Location = "Seatle"],
[EmployeeID = 5, Location = "vancover"],
[EmployeeID = 6, Location = "Seattle"],
[EmployeeID = 7, Location = "Vancouver"]
},
type table [EmployeeID = nullable number, Location = nullable text]
),
"Location",
{"Count", each Table.RowCount(_)},
[IgnoreCase = true, IgnoreSpace = true]
)
Result:
Table.FromRecords({
[Location = "Seattle", Count = 4],
[Location = "Vancouver", Count = 3]
})
Category
Table.Transformation