library(mall)
data("reviews")
llm_use("ollama", "llama3.2", seed = 100, .silent = TRUE)
llm_classify(reviews, review, c("appliance", "computer"))
#> # A tibble: 3 × 2
#> review .classify
#> <chr> <chr>
#> 1 This has been the best TV I've ever used. Gr… computer
#> 2 I regret buying this laptop. It is too slow … computer
#> 3 Not sure how to feel about my new washing ma… appliance
# Use 'pred_name' to customize the new column's name
llm_classify(
reviews,
review, c("appliance", "computer"),
pred_name = "prod_type"
) #> # A tibble: 3 × 2
#> review prod_type
#> <chr> <chr>
#> 1 This has been the best TV I've ever used. Gr… computer
#> 2 I regret buying this laptop. It is too slow … computer
#> 3 Not sure how to feel about my new washing ma… appliance
# Pass custom values for each classification
llm_classify(reviews, review, c("appliance" ~ 1, "computer" ~ 2))
#> # A tibble: 3 × 2
#> review .classify
#> <chr> <dbl>
#> 1 This has been the best TV I've ever used. Great screen, and sound. 1
#> 2 I regret buying this laptop. It is too slow and the keyboard is too… 2
#> 3 Not sure how to feel about my new washing machine. Great color, but… 1
# For character vectors, instead of a data frame, use this function
llm_vec_classify(
c("this is important!", "just whenever"),
c("urgent", "not urgent")
) #> [1] "urgent" "urgent"
# To preview the first call that will be made to the downstream R function
llm_vec_classify(
c("this is important!", "just whenever"),
c("urgent", "not urgent"),
preview = TRUE
) #> ollamar::chat(messages = list(list(role = "user", content = "You are a helpful classification engine. Determine if the text refers to one of the following: urgent, not urgent. No capitalization. No explanations. The answer is based on the following text:\nthis is important!")),
#> output = "text", model = "llama3.2", seed = 100)
Categorize data as one of options given
llm_classify
Description
Use a Large Language Model (LLM) to classify the provided text as one of the options provided via the labels
argument.
Usage
llm_classify(
.data,
col,
labels, pred_name = ".classify",
additional_prompt = ""
)
llm_vec_classify(x, labels, additional_prompt = "", preview = FALSE)
Arguments
Arguments | Description |
---|---|
.data | A data.frame or tbl object that contains the text to be analyzed |
col | The name of the field to analyze, supports tidy-eval |
labels | A character vector with at least 2 labels to classify the text as |
pred_name | A character vector with the name of the new column where the prediction will be placed |
additional_prompt | Inserts this text into the prompt sent to the LLM |
x | A vector that contains the text to be analyzed |
preview | It returns the R call that would have been used to run the prediction. It only returns the first record in x . Defaults to FALSE Applies to vector function only. |
Value
llm_classify
returns a data.frame
or tbl
object. llm_vec_classify
returns a vector that is the same length as x
.