Multi-Model Sentiment Analysis Pipeline
David Kwan's HKU MSc Capstone
(2023, Enhanced in 2025, still under improvement)
Disclaimer: This project is completely my own original creation, developed without copying from any GitHub repositories and with the support of Generative AI. Although AI tools were utilized, the achievement of this project stems from my proficiency in prompt engineering and my extensive knowledge in data science, machine/deep learning, NLP, and sentiment analysis. Without these skills and expertise, this work would not have been achievable.
This enhancement is primarily for my self-teaching and enrichment, and there’s still plenty of room for improvement.
Credit: The training big data set is available at https://github.com/VaRkanar/datasets_/blob/master/amazon_reviews_big.7z (Note: The demo script uses sentiment_data.csv from the same repository, a ~100k subset of the larger 7z file).
© david-kwan.com 2025
A. Core Problem & Business Impact
The Importance of Sentiment Analysis in the Field of Marketing Management
The Hidden Cost of Missing Negative Reviews
Critical Business Impact:
- Missing negative feedback can be more costly than missing positive feedback, based on my years of experience in the jewelry business.
- On the other hand, in the e-commerce world with rating feedback systems, customers are often reluctant to give low ratings, even when genuinely dissatisfied. This is especially evident in the Chinese e-commerce market, where the ‘习惯好评’ (Habitual Positive Rating) phenomenon is particularly pronounced.
- Many customers hesitate to leave negative reviews due to psychological barriers. They worry that if they’re only shopping once at a store, their feedback won’t matter, or if they plan to return, negative feedback might lead to poor treatment in the future. Some customers also fear that leaving multiple negative reviews could damage their reputation on shopping platforms, as sellers might view them as overly demanding or difficult to please.
- However, machine learning algorithms can analyze the language patterns in customer feedback to identify underlying dissatisfaction, even when reviews appear neutral or positive on the surface.
B. Project Impact Summary
- Addresses Critical Business Problem:
- Tackles the issue of "hidden dissatisfaction" in e-commerce, where cultural politeness or rating system biases mask true customer sentiment.
- Enables businesses to move beyond surface-level ratings for a more authentic understanding of customer feedback.
- Leverages Advanced NLP/ML at Scale:
- Successfully processed and analyzed 99,934 reviews, demonstrating capability for enterprise-level datasets.
- Utilized sophisticated Machine Learning and Natural Language Processing techniques for nuanced sentiment detection, including Transformer-based Aspect-Based Sentiment Analysis (ABSA).
- Provides Actionable Insights:
- Allows for proactive prevention of product failures by identifying underlying issues early through overall sentiment and specific aspect sentiment.
- Supports data-driven decision-making based on genuine customer sentiment rather than potentially biased feedback.
- Showcases High-Performance Models:
- Transformer (RoBERTa) Precision: Achieved 58.05% exact accuracy for overall sentiment, ideal for tasks requiring precise classification.
- Ensemble Robustness: The Advanced Ensemble model reached 82.91% tolerance-based (±1 Star) accuracy, demonstrating strong, business-relevant performance and reliability.
- Highlights Hybrid Excellence and Advanced Capabilities:
- Flexible Deployment: The combination of transformer precision for overall sentiment, engineered rule-based feature robustness, and ensemble reliability offers versatile options for diverse business needs.
- Successful Transformer ABSA Fallback: Although the primary
yangheng/deberta-v3-base-absa-v1.1model failed to load in the demonstration run, the pipeline successfully executed its rule-based ABSA fallback, adding significant depth to the analysis by processing 271,306 aspect-sentiments. This demonstrates the pipeline's robustness in ensuring analytical continuity.
- Facilitates In-Depth Error Analysis:
- The Worst Prediction Analyzer, providing full review text alongside predictions in a clear table format, is an invaluable tool for qualitative error understanding and iterative model improvement.
C. Results Summary (Nearly 100,000 Reviews Analysis)
Model Performance Rankings - Business-Optimized Ranking (Reflecting current script output on 99,934 reviews) Ranking Rationale: For business applications, models are ranked by composite performance considering ±1 Star Accuracy (40%), F1 Macro balance (30%), error magnitude (MAE, 20% - lower is better), and exact precision (Exact Acc, 10%).
| Rank | Model | ±1 Star Acc | F1 Macro | MAE | Exact Acc |
|---|---|---|---|---|---|
| #1 | Advanced Ensemble (CHAMPION) | 82.91% | 0.3250 | 0.7437 | 48.93% |
| #2 | Feature-Based (RULE-BASED CHAMPION) | 81.07% | 0.3204 | 0.7590 | 53.27% |
| #3 | Multidimensional | 82.61% | 0.2539 | 0.7795 | 44.62% |
| #4 | Hybrid Weighted | 81.94% | 0.3089 | 0.8136 | 45.99% |
| #5 | RoBERTa Sentiment (PRECISION LEADER) | 80.50% | 0.2871 | 0.7020 | 58.05% |
| #6 | N-gram Enhanced | 81.51% | 0.2830 | 0.8261 | 41.57% |
| #7 | VADER | 80.25% | 0.3053 | 0.8260 | 48.15% |
(Note: Metrics are directly from the current script's output on 99,934 reviews. Ranking reflects a business-focused logic.)
Strategic Performance Analysis
- Advanced Ensemble (Rank #1): The optimal business choice
- Highest ±1 star accuracy (82.91%) - a key business-relevant metric.
- Strongest balanced performance (F1 Macro: 0.3250) - reliable across all sentiment classes.
- Robust error profile - combines strengths while mitigating individual model weaknesses.
- Production recommendation: Deploy for mission-critical applications requiring high reliability and tolerance.
- Feature-Based (Rank #2): The interpretable powerhouse
- Best rule-based performance, leading in exact accuracy (53.27%) and achieving a strong ±1 star score (81.07%).
- Excellent balance for a rule-based model - 2nd highest F1 Macro (0.3204) among evaluated models.
- Interpretability advantage - explainable feature importance for actionable business insights.
- Deployment: Ideal for environments requiring model transparency and understanding feature drivers.
- RoBERTa Sentiment (Rank #5): The precision specialist
- Unmatched exact accuracy (58.05%) - significantly ahead of all other models.
- Lowest error magnitude (MAE: 0.7020) - most precise predictions when correct.
- Trade-off: Lower F1 Macro (0.2871) suggests potential class imbalance sensitivity compared to the ensemble.
- Use case: High-stakes scenarios where exact sentiment distinction is paramount.
Key Technical Achievements
- Large-Scale Processing: Successfully analyzed 99,934 e-commerce reviews.
- 33 Features Extracted: Comprehensive feature set including text statistics, sentiment scores from multiple lexicons (VADER, TextBlob), domain-specific lexicons, n-grams, and various linguistic patterns.
- Robust ABSA Fallback: Successfully executed rule-based ABSA when the primary Transformer model was unavailable, processing 271,306 aspect-sentiments.
- 10 Models + Ensemble: Successfully ran and evaluated 8 distinct rule-based models, a RoBERTa transformer model for overall sentiment, and an advanced adaptive ensemble.
- Production-Ready Pipeline: Demonstrated an end-to-end automated pipeline with robust logging, batch processing, and comprehensive CSV/JSON outputs for features, predictions, and detailed analysis.
- Cross-Validation: Statistically significant performance demonstrated for key rule-based models (VADER, TextBlob, Feature-Based, N-gram Enhanced) across 5-fold stratified cross-validation.
D. Technical Architecture, Implementation, & Deployment
AI-Assisted Development Methodology Critical Success Factor: While leveraging GenAI for coding assistance, this project's feasibility fundamentally depends on accumulated domain expertise in sentiment analysis, data science, and machine learning, combined with advanced prompt engineering skills to guide AI toward theoretically sound solutions.
Enhanced Pipeline Architecture
Dual Preprocessing: Differentiated preprocessing for rule-based models (full cleaning, tokenization, lemmatization) versus transformer models (minimal cleaning).
Feature Engineering (Rule-Based Models): Extraction of 33 features. Their purposes are:
full_text_preview: (Not a feature, but included for context) The original review text, primarily for human analysis when reviewing extracted features or model predictions (e.g., in worst prediction analysis).text_length: Total number of characters in the review. Longer reviews might contain more detailed sentiment or mixed opinions.word_count: Total number of words. Similar totext_length, can indicate review depth.sentence_count: Total number of sentences. Can be used withword_countto find average sentence length, potentially indicating writing style or complexity.avg_word_length: Average length of words. Longer average word length might correlate with more formal or specific language.vader_negative,vader_neutral,vader_positive,vader_compound: Scores from the VADER (Valence Aware Dictionary and sEntiment Reasoner) lexicon. VADER is tuned for sentiments expressed in social media._negative,_neutral,_positive: Proportions of text that fall into these sentiment categories._compound: A normalized, weighted composite score ranging from -1 (most extreme negative) to +1 (most extreme positive). This is a very common and useful sentiment feature.
textblob_polarity: Sentiment polarity score from TextBlob (ranges from -1 to +1). TextBlob uses a rule-based approach.textblob_subjectivity: Subjectivity score from TextBlob (ranges from 0 to 1, where 0 is very objective and 1 is very subjective). Highly subjective text often contains stronger sentiment.exclamation_count: Number of exclamation marks. Often indicates excitement or strong emotion (positive or negative).question_count: Number of question marks. Can indicate confusion, inquiry, or rhetorical emphasis.caps_ratio: Ratio of uppercase letters to total letters. High caps ratio can indicate shouting or emphasis, often associated with strong sentiment.digit_count: Number of digits. Less directly related to sentiment but could indicate discussion of product specifications, model numbers, or quantities.mentions_5_star/_4_star/_3_star/_2_star/_1_star: Boolean features indicating if the review text explicitly mentions "X stars" (e.g., "5 stars", "one star"). This is a very strong heuristic for rule-based rating prediction.positive_word_count: Count of words from a predefined positive lexicon found in the (preprocessed) text.negative_word_count: Count of words from a predefined negative lexicon.intensifier_count: Count of intensifier words (e.g., "very", "extremely") near sentiment words.negation_count: Count of negation terms (e.g., "not", "never") which can flip the sentiment of subsequent words.sentiment_ratio: Calculated aspositive_word_count / (positive_word_count + negative_word_count). Provides a normalized measure of the balance between positive and negative lexicon words.domain_positive_count/domain_negative_count: Counts of positive/negative words specific to the detected product category (e.g., "responsive" for electronics, "stale" for food). Adds domain-specific sentiment context.2gram_count/3gram_count: Total count of bigrams and trigrams (sequences of 2 or 3 words).2gram_positive_count/2gram_negative_count: Count of bigrams containing at least one positive/negative word. Helps capture sentiment in short phrases.3gram_positive_count/3gram_negative_count: Count of trigrams containing at least one positive/negative word.custom_sentiment_score: A composite score calculated by theFeatureExtractorby combining and weighting several other sentiment features (VADER, TextBlob, lexicon ratios, domain sentiment, n-gram sentiment) to create a single, more nuanced sentiment indicator. This score aims to be more robust than any single lexicon score.
Multi-Model Strategy: Deployment of 8 core rule-based models, a RoBERTa transformer for overall sentiment, and an advanced ensemble model.
ABSA Integration: Configured to run the
yangheng/deberta-v3-base-absa-v1.1model, but demonstrated robustness by successfully executing a rule-based fallback mechanism (using TextBlob and NLTK) when the primary transformer model was unavailable in the test environment.Rule-Based Models (8 Core Models)
- VADER, TextBlob, Feature-Based, Multidimensional, Rule-Based Enhanced, Hybrid Weighted, Lexicon Ensemble, N-gram Enhanced.
Transformer Integration (Overall Sentiment)
- Model:
cardiffnlp/twitter-roberta-base-sentiment-latest. - Performance (on 99,934 reviews): 58.05% exact accuracy, 80.50% ±1 star accuracy.
- Integration: Seamlessly incorporated into the advanced ensemble strategy alongside rule-based model predictions.
- Model:
Advanced Ensemble Strategy
def advanced_ensemble_prediction(predictions, features, weights=None): # Adaptive weighting based on prediction confidence (e.g., VADER score magnitude) and feature heuristics (e.g., word_count, caps_ratio). # Outlier detection and filtering using statistical methods (median, standard deviation of predictions). # Feature-based confidence adjustment to boost/penalize certain model predictions. # Median smoothing for high-variance predictions to stabilize output.
Core Dependencies
transformers,torch(for Hugging Face models and PyTorch backend)nltk(for NLP toolkit including VADER, tokenization, lemmatization, POS tagging)scikit-learn(for machine learning algorithms, metrics, cross-validation, clustering)pandas,numpy(for data manipulation and numerical operations)matplotlib,seaborn,plotly(for static and interactive visualizations)textblob,emoji(for text processing and rule-based ABSA fallback)requests(for data downloading)
Deployment Considerations
- Hardware: CPU-optimized (as demonstrated by the script's run on CPU). Optional GPU acceleration can be leveraged for transformer models if available and configured.
- Memory: Efficient batch processing and Pandas DataFrame handling validated for datasets of 99,934 reviews.
- Storage: Structured output with comprehensive CSV/JSON exports for all pipeline stages and analyses.
- Monitoring: Built-in logging via Python's
loggingmodule and performance tracking (e.g.,tqdmfor progress).
E. Enhanced Evaluation Framework
Comprehensive Metrics Suite
- Primary: Exact Accuracy, ±1 Star Accuracy (key business metric).
- Advanced: F1 Macro/Weighted/Close, Precision (Macro), Recall (Macro), Cohen's Kappa.
- Error Analysis: MAE, RMSE.
Cross-Validation Results (5-Fold, Rule-Based Models on 99,934 Features)
| Model | Accuracy (Mean ± Std) | MAE (Mean ± Std) | F1 Close Acc. (Mean ± Std) |
|---|---|---|---|
| Feature-Based | 51.97% ± 0.22% | 0.7735 ± 0.0053 | 0.8937 ± 0.0015 |
| VADER | 46.86% ± 0.16% | 0.8415 ± 0.0038 | 0.8882 ± 0.0016 |
| N-gram Enhanced | 40.59% ± 0.27% | 0.8291 ± 0.0061 | 0.8988 ± 0.0017 |
| TextBlob | 15.99% ± 0.10% | 1.2819 ± 0.0031 | 0.7309 ± 0.0022 |
Advanced Analysis Tools
- Worst Prediction Analyzer: Generates per-model CSVs and displays full review text alongside predictions and key features in Pandas DataFrames within the console/notebook for detailed error diagnosis.
- Customer Segmentation: K-means clustering performed on rule-based features, successfully identifying 2 distinct customer groups (with optimal k in demo run) with results saved to JSON.
- Interactive Dashboards: Plotly HTML exports created for dynamic model performance comparison, facilitating stakeholder communication and exploration.
- Comprehensive Visualizations: Generated confusion matrices, rating distributions (actual vs. predicted), feature analysis plots (boxplots of features vs. rating, feature distributions, correlation heatmaps), model comparison radar charts, and ABSA summary plots.
F. Production Features & Scale Validation
Scalable Architecture
- Large-Scale Processing: Validated on 99,934 reviews.
- Batch Processing: Optimized for large datasets with
tqdmprogress tracking for preprocessing, feature extraction, and model predictions. - Memory Management: Efficient data handling using Pandas and batched operations suitable for large review sets.
- Error Handling: Robust try-except blocks implemented throughout the pipeline for exception management, with comprehensive logging via Python's
loggingmodule. - Results Management: Structured outputs with timestamps, and CSV/JSON exports for all major pipeline stages including features, predictions, ABSA results, CV, and clustering.
G. Business Applications & Strategic Insights
Performance Spectrum Analysis The results demonstrate a clear accuracy hierarchy from the current run:
- Transformer Level (RoBERTa): 58.05% Exact Accuracy for maximum precision.
- Engineered Features (Feature-Based): 53.27% Exact Accuracy, leading rule-based approaches.
- Ensemble/Traditional (Advanced Ensemble, VADER): Ensemble achieved 48.93% Exact Accuracy but excelled with 82.91% ±1 Star Accuracy. VADER at 48.15% Exact Acc. These showcase robust, interpretable, and business-tolerant approaches.
Strategic Deployment Recommendations
- High-Precision Needs: Deploy RoBERTa for scenarios requiring the highest exact sentiment accuracy.
- Balanced Performance & Interpretability: Use Feature-Based for the best rule-based results and clear business insights.
- Robust & Tolerant Predictions: Leverage Advanced Ensemble for the highest tolerance-based accuracy (±1 Star) and strong F1 Macro, ideal for general business applications.
- Production Balance: A hybrid approach, potentially using RoBERTa for critical high-precision tasks and the Advanced Ensemble for broader, reliable sentiment overview, offers flexibility.
Hidden Dissatisfaction Detection
- The pipeline's sophisticated models (especially Ensemble and RoBERTa) and nuanced feature engineering help uncover genuine product/service issues often masked by polite or neutral language in customer reviews.
- Rule-based ABSA provides granular context to pinpoint specific aspects driving dissatisfaction, aiding in understanding cultural rating biases (e.g., ‘习惯好评’).
- Aids in detecting cultural bias patterns where stated ratings might not match underlying sentiment.
Proactive Management
- Enables early warning systems for emerging product issues or declining customer satisfaction trends.
- Aspect-based sentiment analysis facilitates prioritization of product/service improvements with greater precision.
- Optimizes customer service strategies by understanding detailed sentiment drivers at both overall and aspect levels.
H. Future Development & Enhancement Roadmap
Short-Term Enhancements
- ABSA Model Expansion & Refinement: Explore alternative state-of-the-art transformer-based ABSA models for comparative performance. Fine-tune a DeBERTa ABSA model on domain-specific data to potentially enhance granularity and accuracy of aspect extraction and sentiment.
- Cross-Cultural Expansion: Adapt and validate the pipeline on Chinese e-commerce platforms (Taobao, JD.com, Pinduoduo), considering specific linguistic and cultural nuances for both overall sentiment and ABSA.
- Enhanced "Hidden Dissatisfaction" Detection: Develop more specialized algorithms or features, potentially incorporating advanced linguistic cue models, to improve the identification of subtle negative sentiment missed by current approaches.
- Real-Time Systems Integration: Explore pathways for integrating the pipeline (or optimized components) into real-time or near real-time systems for immediate alerts on critical sentiment shifts or sentiment-rating misalignments.
Strategic Applications
- Cost-Benefit Analysis: Quantify the financial impact of accurately identifying and addressing previously missed negative sentiment using the enhanced pipeline.
- Psychology & Cultural Model Integration: Develop models that explicitly account for cultural and psychological factors influencing feedback expression, potentially improving accuracy in diverse markets and further refining hidden dissatisfaction detection.
- Customer Churn Prevention: Utilize sentiment trends and detailed ABSA insights for more precise, proactive identification and engagement of at-risk customers, aiming to reduce churn.
Research Directions
- Multimodal Sentiment Analysis: Integrate analysis of images and videos accompanying reviews for a richer, more holistic sentiment understanding, potentially correlating visual cues with textual sentiment.
- LLM Fine-Tuning for Sentiment Nuance: Fine-tune domain-specific Large Language Models (LLMs) on e-commerce review data to better distinguish authentic sentiment from polite or culturally influenced expressions, improving detection of subtle cues and sarcasm.
- Federated Learning for Privacy: Explore federated learning approaches for privacy-preserving sentiment analysis across multiple platforms or data sources, enabling broader insights while respecting user data and platform policies.
PROJECT OUTPUT
Below is the complete console output from the execution of this Sentiment Analysis Pipeline, followed by the full Python source code. This provides a transparent demonstration of the pipeline's capabilities and my coding work.
Core data science libraries loaded successfully Visualization libraries (matplotlib, seaborn, plotly) loaded successfully Text processing libraries loaded successfully
/Users/777david/Library/Python/3.9/lib/python/site-packages/urllib3/__init__.py:35: NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'LibreSSL 2.8.3'. See: https://github.com/urllib3/urllib3/issues/3020 warnings.warn(
Transformer libraries (transformers, torch) loaded successfully. Using device: cpu Progress tracking (tqdm) loaded successfully IPython.display loaded successfully WordCloud library loaded successfully (though ABSA is now primary for text insights) Requests library loaded successfully Starting Sentiment Analysis Pipeline with Transformer and ABSA capabilities... ============================================================ Initializing NLTK resources... Checking required NLTK resources (will download if not present): Resource 'VADER sentiment analyzer' (vader_lexicon) is available. Resource 'Punkt tokenizer' (punkt) is available. Resource 'POS tagger' (averaged_perceptron_tagger) is available. Resource 'WordNet corpus' (wordnet) is available. Resource 'Stopwords corpus' (stopwords) is available. Resource 'Open Multilingual Wordnet 1.4' (omw-1.4) not found. Attempting download... Downloading 'Open Multilingual Wordnet 1.4' (omw-1.4)... Successfully downloaded 'Open Multilingual Wordnet 1.4' (omw-1.4). NLTK initialization completed successfully! Loaded 36 positive words, 31 negative words, 159 domain words, 93 spec words. Sentiment Analysis Pipeline (Transformer & ABSA Enhanced) - Script Loaded & Ready ====================================================================== This version includes: - Transformer Models (e.g., RoBERTa) for overall sentiment. - Fine-grained Aspect-Based Sentiment Analysis (ABSA) with rule-based fallback. - Worst Prediction Analysis with full review text displayed in a Pandas table. - Additional visualizations for rule-based features (distributions, heatmap). - Alternative plot for 'Rating Distribution in Top Categories'. - Display of Top 50 model predictions with full text in Jupyter output. - Display of Top 50 rule-based features with full text preview in Jupyter output. - Option to use the full dataset (sample_size=None). - Preserved rule-based models and evaluation features. - Cross-Validation and Clustering analyses. - Interactive Model Comparison Dashboard (Plotly HTML). - Comprehensive Markdown Reporting. ====================================================================== To execute in Jupyter: 1. Run CELL 1 (this cell). 2. Sequentially execute CELLs 2-10. 3. Or call `run_pipeline_demo()` for automated run. If running as standalone script: Uncomment `run_pipeline_demo()` at script end. Initializing Sentiment Analysis Pipeline with Transformer and ABSA capabilities... 2025-06-20 23:33:31 - INFO - setup_logging - ============================================================ Sentiment Analysis Pipeline Logger Initialized Results directory: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331 Log file: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/sentiment_analysis_20250620_233331.log ============================================================ 2025-06-20 23:33:31 - INFO - __init__ - SentimentAnalysisPipeline instance created. 2025-06-20 23:33:31 - INFO - _initialize_resources - Initializing NLTK-dependent resources. 2025-06-20 23:33:31 - INFO - _initialize_resources - NLTK VADER & stopwords loaded.
[nltk_data] Downloading package omw-1.4 to [nltk_data] /Users/777david/nltk_data... [nltk_data] Package omw-1.4 is already up-to-date!
NLTK VADER & stopwords loaded.
Some weights of the model checkpoint at cardiffnlp/twitter-roberta-base-sentiment-latest were not used when initializing RobertaForSequenceClassification: ['roberta.pooler.dense.bias', 'roberta.pooler.dense.weight'] - This IS expected if you are initializing RobertaForSequenceClassification from the checkpoint of a model trained on another task or with another architecture (e.g. initializing a BertForSequenceClassification model from a BertForPreTraining model). - This IS NOT expected if you are initializing RobertaForSequenceClassification from the checkpoint of a model that you expect to be exactly identical (initializing a BertForSequenceClassification model from a BertForSequenceClassification model). Device set to use cpu
2025-06-20 23:33:32 - INFO - __init__ - Transformer sentiment model 'cardiffnlp/twitter-roberta-base-sentiment-latest' loaded on cpu.
2025-06-20 23:33:32 - INFO - __init__ - NLTK sent_tokenize loaded for ABSA.
2025-06-20 23:33:32 - ERROR - __init__ - Failed to load ABSA Transformer model: Converting from SentencePiece and Tiktoken failed, if a converter for SentencePiece is available, provide a model path with a SentencePiece tokenizer.model file.Currently available slow->fast converters: ['AlbertTokenizer', 'BartTokenizer', 'BarthezTokenizer', 'BertTokenizer', 'BigBirdTokenizer', 'BlenderbotTokenizer', 'CamembertTokenizer', 'CLIPTokenizer', 'CodeGenTokenizer', 'ConvBertTokenizer', 'DebertaTokenizer', 'DebertaV2Tokenizer', 'DistilBertTokenizer', 'DPRReaderTokenizer', 'DPRQuestionEncoderTokenizer', 'DPRContextEncoderTokenizer', 'ElectraTokenizer', 'FNetTokenizer', 'FunnelTokenizer', 'GPT2Tokenizer', 'HerbertTokenizer', 'LayoutLMTokenizer', 'LayoutLMv2Tokenizer', 'LayoutLMv3Tokenizer', 'LayoutXLMTokenizer', 'LongformerTokenizer', 'LEDTokenizer', 'LxmertTokenizer', 'MarkupLMTokenizer', 'MBartTokenizer', 'MBart50Tokenizer', 'MPNetTokenizer', 'MobileBertTokenizer', 'MvpTokenizer', 'NllbTokenizer', 'OpenAIGPTTokenizer', 'PegasusTokenizer', 'Qwen2Tokenizer', 'RealmTokenizer', 'ReformerTokenizer', 'RemBertTokenizer', 'RetriBertTokenizer', 'RobertaTokenizer', 'RoFormerTokenizer', 'SeamlessM4TTokenizer', 'SqueezeBertTokenizer', 'T5Tokenizer', 'UdopTokenizer', 'WhisperTokenizer', 'XLMRobertaTokenizer', 'XLNetTokenizer', 'SplinterTokenizer', 'XGLMTokenizer', 'LlamaTokenizer', 'CodeLlamaTokenizer', 'GemmaTokenizer', 'Phi3Tokenizer']. Will attempt rule-based ABSA fallback.
2025-06-20 23:33:32 - INFO - __init__ - Rule-based ABSA (with TextBlob) will be used as a fallback if needed.
2025-06-20 23:33:32 - INFO - __init__ - Pipeline initialized. Results directory: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331
Pipeline initialized. Results stored in: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331
Pipeline instance ('pipeline') created. Results in: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331
Notebook Cell 3: Using data_source = 'sentiment_data.csv'
Notebook Cell 3: Using sample_size = Full Dataset
STEP 1: Data Loading & Initial Cleaning
2025-06-20 23:33:32 - INFO - load_data - Loading data: sentiment_data.csv, sample: Full Dataset Loading and cleaning data from: sentiment_data.csv... Initial raw shape: (100000, 2) Retained 99934 rows after cleaning (dropped 66). Using full dataset (99934 reviews). Final data shape: (99934, 2) Detecting product categories...
Detecting categories: 0%| | 0/99934 [00:00<?, ?review/s]
Category distribution:
Electronics: 53,632 (53.7%)
Unknown: 22,465 (22.5%)
Clothing: 16,151 (16.2%)
Books: 3,217 (3.2%)
Home: 2,788 (2.8%)
Beauty: 1,525 (1.5%)
Food: 156 (0.2%)
Data loading and cleaning complete.
2025-06-20 23:33:35 - INFO - load_data - Loaded 99934 reviews. Ratings: Counter({5: 59761, 4: 20429, 3: 8471, 1: 6387, 2: 4886}). Categories: [('electronics', 53632), ('unknown', 22465), ('clothing', 16151), ('books', 3217), ('home', 2788)]
Data loading successful! Total reviews: 99,934
Avg rating: 4.22
------------------------------------------------------------
STEP 2: Text Preprocessing
2025-06-20 23:33:35 - INFO - preprocess_data - Initiating text preprocessing for rule-based and Transformer models.
Preprocessing texts (rule_based - Batch): 0%| | 0/99934 [00:00<?, ?texts/s]
2025-06-20 23:34:25 - INFO - preprocess_data - Preprocessing for rule-based models complete: 99934 texts.
Preprocessing texts (transformer - Batch): 0%| | 0/99934 [00:00<?, ?texts/s]
2025-06-20 23:34:46 - INFO - preprocess_data - Preprocessing for Transformer models complete: 99934 texts. Text preprocessing finished! Sample - Original: 'What I recieved is not what is pictured here OR ADVERTIZED, but it is a vidio ca...' Sample - Processed (Rules): 'recieved pictured advertized vidio cable job needed looking high quality cable r...' Sample - Processed (Transformers): 'what i recieved is not what is pictured here or advertized, but it is a vidio ca...' ------------------------------------------------------------
STEP 3A: Feature Extraction (Rule-Based Models)
2025-06-20 23:34:46 - INFO - extract_features_for_rule_based_models - Extracting features for rule-based models.
Extracting features (Batch): 0%| | 0/99934 [00:00<?, ?texts/s]
2025-06-20 23:36:12 - INFO - extract_features_for_rule_based_models - Rule-based features extracted ((99934, 33)). Saved to: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/extracted_rule_based_features.csv Rule-based feature extraction finished! Shape: (99934, 33) Preview of extracted rule-based features (Top 50 rows with full text preview on the left):
| full_text_preview | text_length | word_count | sentence_count | avg_word_length | vader_negative | vader_neutral | vader_positive | vader_compound | textblob_polarity | textblob_subjectivity | exclamation_count | question_count | caps_ratio | digit_count | mentions_5_star | mentions_4_star | mentions_3_star | mentions_2_star | mentions_1_star | positive_word_count | negative_word_count | intensifier_count | negation_count | sentiment_ratio | domain_positive_count | domain_negative_count | 2gram_count | 2gram_positive_count | 2gram_negative_count | 3gram_count | 3gram_positive_count | 3gram_negative_count | custom_sentiment_score | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | What I recieved is not what is pictured here OR ADVERTIZED, but it is a vidio cable, and it does do the job I needed it for. If you were looking for a high quality cable do not buy this product. I recieved a cheap thin flimsy cable that is not gold plated or anything else they claim here. Bait and Switch? or a mistake in the order !!!!! . I do not know. I will attempt to contact the sender and find out. I contacted the seller and they told me to contact amazon.com so i did, and amazon.com was good enough to give me a $4.00 refund; which is good, because all this cable is woth is $2 to $3. I only needed it to run my wife's kareokee to the TV. If it was for any thing else I would have sent it back for a full refund. I'm surprised that this item is still listed as a high grade cable. | 791 | 167 | 15 | 3.586826 | 0.020000 | 0.909000 | 0.071000 | 0.844900 | 0.142727 | 0.616364 | 5 | 1 | 0.035398 | 5 | False | False | False | False | False | 2 | 2 | 0 | 0 | 0.500000 | 1 | 2 | 58 | 6 | 6 | 57 | 9 | 9 | 0.232015 |
| 1 | Excellent unit and a pretty simple install using the wiring adapter and removal tools I purchased with it. Kenwood quality is evident in the look and sound today and bodes well for the future. If you get the extra stuff its really simple to install--just be sure you have the frame on correctly (I 'd use a sharpie and mark it 'top' and 'front' before you slide it off the radio to bend the tabs out so it will fit snugly in the dash). This one went in my wife's 99 Miata and I'll likely do another in mine because it will be even simpler the next time. She also reports that the CD player is pretty skip-free, which isn't easy in a sports car. | 644 | 130 | 5 | 3.853846 | 0.018000 | 0.853000 | 0.129000 | 0.930700 | 0.265556 | 0.547434 | 0 | 0 | 0.017081 | 2 | False | False | False | False | False | 3 | 0 | 1 | 0 | 1.000000 | 2 | 0 | 52 | 5 | 0 | 51 | 7 | 0 | 0.832321 |
| 2 | I'm enjoying this keyboard, I'm getting another one for my other laptop that I keep at home.I've had this now for almost a year. Yes, I experience the BT lag, too, but I live with it. (Hence the 4 stars instead of 5) ***UPDATE*** (Now 5 stars--see update below.) Would I buy it again? Well, yes...as I said, I'm buying another. One BT annoyance is that you can pair your device with only one other device.Great layout, excellent size, superb tactile feel. One big advantage with a wireless keyboard and using a note/netbook is that you are no longer at the mercy of how high the desk/table/airline tray is--you can have the comfort (and more healthy) height of typing from your lap. I love it!I love the slim design and the power off button--it fits great in my laptop backpack. It is so light, too. With my 2.8 lbs. Asus netbook, adding this lightweight is really nothing. And because of its size, it fits in any bag, attaché, backpack, etc. easily.***UPDATE***Been using my two MS Mobile 6000's for a year now. Still loving it. Also--I am using it on my iPod Touch! I no longer am taking my netbook or my laptop to school. Just this keyboard and my Touch. Can't beat that.I came across a post that helped me solve any BT wake up issues. Instead of 20 seconds or so of waiting, it only takes about 2 seconds to wake up. Also, since replacing my laptop, I was experiencing seriously annoying disconnections, sometimes requiring deleting it from BT and reinstalling it. This blog post solved it all. In my case, all I needed to do was to clear the checkbox "Allow the computer to turn off this device to save power" in Device Manager and NO MORE PROBLEMS!!! Here's the link:[...]Enjoy! | 1691 | 327 | 31 | 3.944954 | 0.074000 | 0.742000 | 0.185000 | 0.991800 | 0.261732 | 0.622540 | 6 | 1 | 0.048492 | 12 | True | True | False | False | False | 4 | 2 | 1 | 1 | 0.666667 | 2 | 1 | 142 | 11 | 4 | 141 | 14 | 6 | 0.526553 |
| 3 | Overall, this is a fantastic camera that I'm extremely pleased with.However, I bought it to take pictures indoors without flash. I was prepared for lower quality images indoors without a flash, but the Lumix does not do nearly as well as my Canon Elph in identical lighting situations. The flash is good, but if you want a camera to shoot indoors without flash, be prepared for fairly noisy images with a lot of artifacts. | 422 | 76 | 4 | 4.460526 | 0.125000 | 0.721000 | 0.154000 | 0.504700 | 0.400000 | 0.633333 | 0 | 0 | 0.021327 | 0 | False | False | False | False | False | 4 | 0 | 1 | 1 | 1.000000 | 1 | 1 | 39 | 8 | 0 | 38 | 11 | 0 | 0.581410 |
| 4 | These work very well with mySamsung PN64D7000 64-Inch 1080p 600 Hz 3D Plasma HDTV (Black). They come in a nice felt bag inside a zipped hard case. They fit very well even over my glasses (which are 58 mm from side to side FWIW). They charge via a microsub cable (included, in case you don't already have a bunch). I like them more than my Samsung SSG-3050s. I'll buy more of these. One tip -- they don't seem to auto-associate the first time you turn them on. So, first fully charge them, then turn on your TV, then press and hold the power button until it blinks rapidly. Then it will associate and work great. | 611 | 120 | 9 | 3.916667 | 0.012000 | 0.851000 | 0.138000 | 0.935900 | 0.294697 | 0.490152 | 0 | 0 | 0.052373 | 22 | False | False | False | False | False | 2 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 53 | 3 | 0 | 52 | 4 | 0 | 0.839709 |
| 5 | Its much more powerful then I expected!!!!!BIG,DEEP ,WINDOW BREAKING BASS What I really like about it you can fine tune it to your liking. Some subs sound good with movies,and terrible with music, this sub is truly fantastic with both. | 236 | 43 | 3 | 4.302326 | 0.057000 | 0.555000 | 0.388000 | 0.950600 | 0.196296 | 0.622222 | 5 | 0 | 0.127119 | 0 | False | False | False | False | False | 2 | 1 | 2 | 0 | 0.666667 | 1 | 0 | 21 | 3 | 2 | 20 | 4 | 3 | 0.574915 |
| 6 | A lot of computer fans come with the small 3 pin connector and no adapter to plug in to the power supply. And a lot of motherboards do not have any spare fan power pins. Therefore, a small pile of these is handy to have around if you ever have to add or replace certain fans.I found these at two bucks each with no additional shipping charge (Prime subscription) and ordered 5 along with one of these:Cooler Master 120mm Silent Case Fan 4-in-1 Value Pack - (R4-S2S-124K-GP) | 475 | 93 | 3 | 4.000000 | 0.050000 | 0.847000 | 0.103000 | 0.571900 | 0.062857 | 0.474286 | 0 | 0 | 0.037895 | 12 | False | False | False | False | False | 0 | 0 | 0 | 0 | 0.500000 | 0 | 1 | 43 | 0 | 0 | 42 | 0 | 0 | 0.034141 |
| 7 | I finally found a 10 foot lightning cable to replace the old iPhone cable that I travel with. Because so many hotel rooms don't have convenient electric plugs, the long cable had been a lifesaver. This one works fine but it is so thick and heavy that it's not really suitable for travel applications. | 300 | 56 | 3 | 4.303571 | 0.000000 | 0.927000 | 0.073000 | 0.421500 | 0.023958 | 0.540625 | 0 | 0 | 0.016667 | 2 | False | False | False | False | False | 0 | 0 | 1 | 0 | 0.500000 | 0 | 1 | 26 | 0 | 0 | 25 | 0 | 0 | -0.018758 |
| 8 | VERY POOR QUALITY I USED IT ONCE AND THE CONNECTION BROKE THE FIRST DAY !! IT SHOULD HAVE BEEN ON A SMALL CABLE | 111 | 22 | 1 | 3.954545 | 0.321000 | 0.679000 | 0.000000 | -0.874300 | -0.126458 | 0.504444 | 2 | 0 | 0.783784 | 0 | False | False | False | False | False | 1 | 1 | 0 | 0 | 0.500000 | 1 | 2 | 7 | 2 | 1 | 6 | 2 | 1 | -0.304248 |
| 9 | I got this camera *years* ago! I still work with it occasionally, but back in it's hayday, I used it for bulb photography with lightning. The plus was using infinity and not autofocus (because the autofocus is horrendous), but the negatives were a maximum 60 second bulb and lots of noise. Of course, back when this camera was $1,000+, it was pretty good. Still, in the daylight it takes beautifully vivid photos. I upgraded the firmware on it just before Konica halted the production of all cameras, which was supposed to fix the autofocus, but didn't make any difference to me. It's been through rain, snow and heat and has still held up. She's probably been through at least 10,000 pictures (lots of lightning photos that contained no lightning, probably every 95 in 100 were deleted). Very robust. Still gets four stars despite it's problems. I'll keep it til it dies! | 882 | 159 | 11 | 4.308176 | 0.017000 | 0.859000 | 0.124000 | 0.960700 | 0.113889 | 0.352778 | 2 | 0 | 0.014739 | 16 | False | True | False | False | False | 1 | 1 | 0 | 0 | 0.500000 | 0 | 0 | 70 | 2 | 2 | 69 | 3 | 3 | 0.310988 |
| 10 | I've been using this for the last 3 years or so. It is excellent -- great range, and I cannot recall last time I changed the battery. I have young kids, they've taken it apart (removed the track ball) million times, smacked it into the ground, thrown it, no problems. Works like a charm. I'm going to get another one for my 2nd HTPC. | 333 | 66 | 5 | 3.833333 | 0.069000 | 0.745000 | 0.186000 | 0.854200 | 0.316667 | 0.380556 | 0 | 0 | 0.033033 | 2 | False | False | False | False | False | 2 | 1 | 0 | 0 | 0.666667 | 1 | 0 | 27 | 3 | 2 | 26 | 4 | 3 | 0.570070 |
| 11 | I purchased this huge headset to use for music and softphone. It sounds great in stereo and 7.1 but the mic is absolutely useless. All the other end hears is a humming background noise. They cant make out what im saying so it has to go....on to the next one. | 258 | 52 | 6 | 3.846154 | 0.078000 | 0.844000 | 0.079000 | -0.235700 | 0.115000 | 0.445000 | 0 | 0 | 0.015504 | 2 | False | False | False | False | False | 1 | 1 | 1 | 0 | 0.500000 | 0 | 0 | 21 | 2 | 2 | 20 | 3 | 3 | -0.047710 |
| 12 | This is definitely a replacement for the original jambox. Personally I find that it has a louder and crisper sound as compared to the to the original. The sound for it's size is great. Perfect for a office, bedroom or any setting for maybe 4 people max in a small room. The build is solid and has a good weight to it. The battery life is great. I was able to get over 8 hours of continuous play with the volume at 70%. Overall I'm very pleased with this speaker and highly recommend it. | 486 | 96 | 8 | 3.968750 | 0.000000 | 0.698000 | 0.302000 | 0.983500 | 0.369375 | 0.554062 | 0 | 0 | 0.020576 | 4 | False | False | False | False | False | 5 | 0 | 1 | 0 | 1.000000 | 1 | 1 | 39 | 10 | 0 | 38 | 14 | 0 | 0.718925 |
| 13 | This adapter does its job and does it well. Unlike the Apple MacBook power adapters, this consistently works. I've had the kindle for a few years now and the adapter is durable and doesn't show any signs of wear. | 214 | 41 | 3 | 4.097561 | 0.000000 | 0.946000 | 0.054000 | 0.273200 | 0.025000 | 0.175000 | 0 | 0 | 0.028037 | 0 | False | False | False | False | False | 1 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 16 | 2 | 0 | 15 | 3 | 0 | 0.586960 |
| 14 | I have used one of these mounts for over a year now. This is my second for my second car and second Garmin. THis is a superior mount to the suction mount in my opinion. It is much easier to use and stays where you place it. I have traveled cross country with this and had absolutely no problems with it. It sits properly on my dash; it is easy to mount the Garmin on it and it is easier to read and hear from the distance that it is from me as opposed to the suction mount. I found the suction mount hard to use. It was a very long reach to mount it to my windshield and since I was traveling to California it was also illegal. The bean bag mount hasn't disappointed me yet. It has yet to move from the place that I have set it. I have not had a near accident with it in place so I don't know how it stays in place during emergency maneuvers, but so far I would say it is going to work as well as any other mounting device. I highly recommend this mount. | 954 | 198 | 12 | 3.752525 | 0.046000 | 0.857000 | 0.097000 | 0.842100 | -0.008137 | 0.444706 | 0 | 0 | 0.020964 | 0 | False | False | False | False | False | 2 | 1 | 2 | 0 | 0.666667 | 1 | 1 | 72 | 4 | 2 | 71 | 5 | 3 | 0.363503 |
| 15 | So far so good with this shoulder strap. I didn't have much faith in this product at first.But after trying it a few times its a Great Strap. I added an extra secure line to the camera just in case.I use this on my backup inexpensive body. I still wouldn't put my expensive body or any of the L lens on it. I rather play it safe than sorry :)Definitely a lot more comfortable over the straps that is provided with the camera. Next step is to buy a reliable Black Rapid Fastenr (FR-3)to replace this cheap one. I will | 520 | 106 | 8 | 3.792453 | 0.035000 | 0.780000 | 0.185000 | 0.950400 | 0.184314 | 0.557843 | 0 | 0 | 0.034615 | 1 | False | False | False | False | False | 4 | 1 | 0 | 0 | 0.800000 | 1 | 0 | 43 | 8 | 1 | 42 | 11 | 1 | 0.702538 |
| 16 | Brought for husband to use. Good fit for his surround sound system. He's happy with the purchase and so am I | 109 | 22 | 2 | 3.863636 | 0.000000 | 0.651000 | 0.349000 | 0.844200 | 0.575000 | 0.600000 | 0 | 0 | 0.036697 | 0 | False | False | False | False | False | 2 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 7 | 3 | 0 | 6 | 4 | 0 | 0.868260 |
| 17 | While originally looking to overhauling my old PC, I was actually shown this case by a fellow Amazon customer after they brought it to my attention, and figured that I'm actually better off having one built from complete scratch.But what really made this case unique, was not only does it light blue once turned on, but having 5 pre-installed fans built into it and also having the option to add 2 more for a total of 7 fans (good if you're a heavy overclocker), which gives an excellent amount of airflow. So for those who like building computers from scratch, I highly recommend getting this case!!!! | 603 | 110 | 3 | 4.363636 | 0.000000 | 0.850000 | 0.150000 | 0.947300 | 0.277539 | 0.552500 | 4 | 0 | 0.014925 | 3 | False | False | False | False | False | 3 | 0 | 2 | 0 | 1.000000 | 1 | 0 | 47 | 6 | 0 | 46 | 9 | 0 | 0.839698 |
| 18 | This keyboard is awesome. I honestly could do without the light that comes on whenever you get close to it, but I guess it's good because it reminds you that you left it on and therefore that could be a battery saver. I have only tested it with my apple products (Macbook Pro, iPhone 5S and iPad air) and it works flawlessly. I have not tested it with Windows but I have heard that it works well there too. | 406 | 80 | 4 | 3.987500 | 0.000000 | 0.837000 | 0.163000 | 0.905200 | 0.528571 | 0.742857 | 0 | 0 | 0.029557 | 1 | False | False | False | False | False | 2 | 0 | 0 | 1 | 1.000000 | 1 | 0 | 29 | 4 | 0 | 28 | 5 | 0 | 0.877274 |
| 19 | I have 16gb of these in my Maximus IV Extrme z and they work great. Windows gave them a 7.9 the highest score on the ratings. | 125 | 27 | 3 | 3.592593 | 0.000000 | 0.843000 | 0.157000 | 0.624900 | 0.800000 | 0.750000 | 0 | 0 | 0.048000 | 4 | False | False | False | False | False | 1 | 0 | 0 | 0 | 1.000000 | 0 | 0 | 9 | 2 | 0 | 8 | 3 | 0 | 0.697470 |
| 20 | I am very happy with this card; good value, I would buy it again and would recommend it to others. | 98 | 20 | 1 | 3.800000 | 0.000000 | 0.543000 | 0.457000 | 0.895500 | 0.850000 | 0.800000 | 0 | 0 | 0.020408 | 0 | False | False | False | False | False | 3 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 5 | 5 | 0 | 4 | 4 | 0 | 0.938650 |
| 21 | This case is perfect for my SD600. My only complaint is that if the wrist-strap is not threaded through the top hole it doesn't close right. Minor issue. It's small, has a belt loop (not a clip, which is not dependable) and it's a hard case so it'll protect the camera in a handbag or pocket. I recommend it. | 312 | 64 | 5 | 3.687500 | 0.058000 | 0.768000 | 0.174000 | 0.806200 | 0.111756 | 0.547173 | 0 | 0 | 0.022436 | 3 | False | False | False | False | False | 2 | 2 | 0 | 0 | 0.500000 | 1 | 1 | 23 | 3 | 4 | 22 | 3 | 6 | 0.240402 |
| 22 | I bought this for my father to replace the crappy one that I snapped in half. I must say that I love this thing. The price is high, but the fact that it feels so substantial, moreso than any other keyboard I have ever used before, and that the backlighting automatically pops up when you are within an inch of the keys, makes it almost feel intuitive. very good wireless keyboard for those who have a seperate mouse and dislike trackpads. | 441 | 81 | 4 | 4.320988 | 0.067000 | 0.817000 | 0.116000 | 0.641500 | 0.255667 | 0.492333 | 0 | 0 | 0.013605 | 0 | False | False | False | False | False | 2 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 32 | 4 | 0 | 31 | 6 | 0 | 0.743583 |
| 23 | Now I hated the stupid mouse that came with my imac and wasn't to unhappy when the little scroll ball finally stopped working, but this mouse is just junk. At least on my imac the dependably of it is less than 50%. More than half of my clicks don't register and the movement is sometimes smooth but mostly choppy. Plus no side scrolling is a downer. I know for $18 what was i expecting right. I can't speak for other computers, but if your looking for a replacement for an imac then DO NOT buy this crappy mouse. | 512 | 101 | 6 | 3.980198 | 0.145000 | 0.838000 | 0.016000 | -0.922500 | -0.173855 | 0.526465 | 0 | 0 | 0.023438 | 4 | False | False | False | False | False | 1 | 1 | 0 | 0 | 0.500000 | 0 | 0 | 40 | 2 | 2 | 39 | 3 | 3 | -0.311521 |
| 24 | I purchased this to charge the batteries for my Motorola Verizon Droid 2X Global phone. It works really well. It was a replacement for another wall charger. I purchased the other and it worked but I lost it so I purchased another and it was the same but the batteries no longer fit. This one is great as the contacts are somewhat reconfigurable and the length can be adjusted with a spring to hold the battery in so no need for a precise fit which was the problem with other battery charger. The other issue is this can apparently automatically sense the polarity of the battery contacts and so you don't have to worry about accidentally putting it in backwards which would be a potential issue for a reconfigurable battery charger like this is. Assuming this lasts, this is a great product and works like it should. | 823 | 148 | 7 | 4.466216 | 0.090000 | 0.737000 | 0.173000 | 0.942300 | 0.205769 | 0.453846 | 0 | 0 | 0.017011 | 1 | False | False | False | False | False | 1 | 2 | 1 | 0 | 0.333333 | 1 | 0 | 59 | 4 | 6 | 58 | 6 | 9 | 0.370511 |
| 25 | This works great with my iphone 5 and other android devices one thing to know though is you'll need up to date bluetooth capabilities for example my macbook air mid2011 will not pair with this device.I would still recommend this for sure to anyone with bluetooth firmware more up to date. | 288 | 53 | 2 | 4.433962 | 0.000000 | 0.841000 | 0.159000 | 0.836000 | 0.418750 | 0.628472 | 0 | 0 | 0.006944 | 5 | False | False | False | False | False | 2 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 23 | 4 | 0 | 22 | 5 | 0 | 0.834550 |
| 26 | Love everything about it. Would have given it a five star but at the time that I purchased it not many compatible apps. | 119 | 23 | 2 | 4.130435 | 0.000000 | 0.885000 | 0.115000 | 0.381800 | 0.125000 | 0.550000 | 0 | 0 | 0.025210 | 0 | True | False | False | False | False | 2 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 8 | 3 | 0 | 7 | 3 | 0 | 0.639540 |
| 27 | We tried this out with both the iPod and the iPhone. It's a nice little alarm clock with an AM/FM radio and a dock for your device.There is an application available that lets you specify bass and treble levels. You can toggle military or U.S. time. You can sync your iPod Touch or iPhone automatically with the clock. You can set two alarms on your phone or iPod, and you can set up the music you want for your alarm. There's a dimmer for the clock, though we didn't find it too obtrusive.It charges your phone, and we like it for that because it looks better than a charger.There's a remote, but it doesn't sync to your device and let you identify and jump to a particular song. There are remotes out now with this feature.It's attractive, the sound quality is decent, and you can move the speakers away from the clock to suit your preferences. We think this would be good for a dorm room.This is a nice item and it does its job. | 930 | 188 | 15 | 3.872340 | 0.034000 | 0.865000 | 0.101000 | 0.917600 | 0.291987 | 0.553846 | 0 | 0 | 0.026882 | 0 | False | False | False | False | False | 3 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 70 | 8 | 0 | 69 | 11 | 0 | 0.833677 |
| 28 | I only have this for a day, but I did some testing on this, importing some photos and a video to my 4th generation iPad. There is a small card packed with the device that lists the problems that you may have, so some of these are "documented bugs". I got one message that this is an unsupported device, the card says to ignore this. It occasionally is difficult to get the device to be recognized, but some tinkering with the sequence of connection and launch of the photo app.eventually brings it up (documented). The imports were all successful. IOS crashed twice while I was testing (not documented). I think that this can be prevented by ending the photo program before you disconnect the device. Since this is an intermittent problem, I am not sure of this fix, but it didn't crash after I tried this. In summary, this is much cheaper than the Apple device and it does work, but with some quirks. | 901 | 166 | 10 | 4.289157 | 0.111000 | 0.836000 | 0.053000 | -0.873200 | -0.008333 | 0.739815 | 0 | 0 | 0.018868 | 1 | False | False | False | False | False | 0 | 2 | 0 | 0 | 0.000000 | 1 | 2 | 63 | 0 | 6 | 62 | 0 | 9 | -0.663627 |
| 29 | I got this because I read that if you shoot video with a DSLR, you need a fast card with fast write times. They were correct. I use this to shoot videos and it works very well. I have since retired it after 2 years of use for an even faster card by the same manufacturer. This card served me very well and I highly recommend these cards to anyone who shoots video from and SLR or from and digital video camera that uses SD cards. Exceptional product. | 450 | 88 | 6 | 4.045455 | 0.055000 | 0.858000 | 0.087000 | 0.417400 | 0.203333 | 0.433125 | 0 | 0 | 0.037778 | 1 | False | False | False | False | False | 2 | 0 | 1 | 0 | 1.000000 | 2 | 0 | 38 | 6 | 0 | 37 | 8 | 0 | 0.665887 |
| 30 | I am very pleased with the NE56R34u laptop. Since it is my first laptop I cannot judge from other models.The first thing I did was upgrade the ram to 8 gigs which made it very speedy. I also upgraded to windows 8 pro and now this baby screams.Even though this has a low-end Pentium processor it works for what I need it to do which is word processing, email, watching videos and light web browsing. Cannot go wrong for the price ( 320.00 ) from Amazon. | 452 | 88 | 7 | 4.034091 | 0.000000 | 0.907000 | 0.093000 | 0.754100 | 0.160714 | 0.563095 | 0 | 0 | 0.030973 | 11 | False | False | False | False | False | 1 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 35 | 1 | 0 | 34 | 1 | 0 | 0.758373 |
| 31 | I already have an Onkyo receiver as my home theater receiver and have been immensely satisfied with it. I decided to go with Onkyo again when setting up speakers above my kitchen cabinets for CD and radio listening when I am in the kitchen cooking or washing dishes, etc. The TX-8222 has proven to be a worthy purchase. The speaker wire posts are screw-on binding posts, not spring clips as in cheaper models by other manufacturers. Definitely makes it easier to connect wire to the back. The 50 watts are more than powerful enough to power a pair of Sony 3-way bookshelf speakers. FM radio reception is pretty good, and the unit remembers your station presets even if the power cord is unplugged from the outlet. My two complaints about the receiver are minor - there is no numerical volume indicator on the display when you raise or lower the volume, which would have been nice, and the volume dial on the receiver moves rather pointlessly when adjusting the volume by remote. For the price though, this model can't be beat if you're looking for a stereo receiver. | 1066 | 192 | 9 | 4.468750 | 0.035000 | 0.849000 | 0.116000 | 0.944000 | 0.177222 | 0.565000 | 0 | 0 | 0.016886 | 7 | False | False | False | False | False | 3 | 1 | 0 | 0 | 0.750000 | 1 | 0 | 91 | 6 | 2 | 90 | 9 | 3 | 0.643644 |
| 32 | Many gaming mousepads come with a travel case, this one doesn't. The mousepad is nice though. | 94 | 17 | 2 | 4.352941 | 0.000000 | 0.833000 | 0.167000 | 0.421500 | 0.550000 | 0.750000 | 0 | 0 | 0.021277 | 0 | False | False | False | False | False | 1 | 0 | 0 | 0 | 1.000000 | 0 | 0 | 8 | 2 | 0 | 7 | 2 | 0 | 0.586450 |
| 33 | The Plantronics GameCom 777 Surround Sound Gaming Headset has a few things going for it, but comfort and ease of set-up are not among them. After working in radio for many years, wearing headphones for hours per day, you learn quickly what does and doesn't work. As far as comfort goes, these simply don't work.Now I'll be the first to admit it can't be easy to design a pair of truly comfortable over the ear headphones (in broadcasting we call them cans). There are many things to consider; from variations in the user's ears and head width, to depth of cushioning, etc.I find the 777s to be too tight and the interior space of each ear piece to small. The result is a headphone that feels bad right from the start and only gets worses the longer you wear it.As far as set-up goes the 777 is a train wreck. No instructions, and a very hit ans miss driver. Sometimes the computer recognizes it, sometimes not.Once installed, the mic on the headset does it's job. but is nothing special.The one truly redeeming factor for this product is the sound. While there is of course no way to create a true surround sound experience with a headphone, I found the 777s to have good full drive, plenty of base and a pretty crisp high-end. | 1227 | 237 | 14 | 4.084388 | 0.077000 | 0.772000 | 0.151000 | 0.963800 | 0.175916 | 0.578022 | 0 | 0 | 0.017930 | 12 | False | False | False | False | False | 3 | 1 | 1 | 1 | 0.750000 | 1 | 2 | 111 | 6 | 2 | 110 | 9 | 3 | 0.449323 |
| 34 | I bought this TV to replace my old Sony tube TV which was defective and had a greenish screen. That TV was only a few years old, too, which doesn't say too much for Sony products. This TV, however, is so beautiful; it is FAR superior to the old tube TV I had. There is just no comparison. The colors are vibrant and the contrast is amazing, especially in HD. It is my first HD TV and I can definitely see why people love these TVs so much.The sound is just okay. I do not have the sound distortion problem resulting from using the QAM tuner and not a cable box with Comcast with this TV. Hopefully, I will never get this problem since it is a major issue with the 32" Samsung TV we bought shortly after this one. You can see what I mean by reading my review on the LN32A330 model. Apparently, most of Samsung's tuners are defective in these TVs and do not work well with cable signals (mainly Comcast) unless there is a cable box. This results in distorted or "robotic" sound on HD channels at regular intervals.I highly recommend this TV ONLY if you use a cable box. I personally wouldn't take a chance with it if you have Comcast or any other cable without a cable box. My 26" doesn't have the sound problem, but it could only be a matter of time before it pops up, which I have heard does happen. | 1299 | 256 | 15 | 3.964844 | 0.063000 | 0.855000 | 0.082000 | 0.715400 | 0.198978 | 0.506863 | 0 | 0 | 0.052348 | 9 | False | False | False | False | False | 4 | 3 | 2 | 2 | 0.571429 | 1 | 1 | 105 | 8 | 12 | 104 | 12 | 18 | 0.270130 |
| 35 | I recently tried a Bioserie Bioplastic Cover for iPod touch 4G which costs $24.95. It kept losing it's shape and spitting out my ipod touch and it only offered protection from scratches.This Amazon basic cover at less than $10 does hold my ipod and it's design will not only protect from scratches on the back but also protect the device if I drop it.All the buttons still work fine and it's easy to access the charging slot.I keep my ipod in my pocket and the cover does not interfere with that. | 496 | 98 | 6 | 4.030612 | 0.091000 | 0.833000 | 0.076000 | -0.107300 | 0.085417 | 0.471875 | 0 | 0 | 0.024194 | 7 | False | False | False | False | False | 1 | 0 | 0 | 0 | 1.000000 | 0 | 0 | 41 | 2 | 0 | 40 | 3 | 0 | 0.334893 |
| 36 | Works really well. We have 4 different mount configurations, and this has been able to handle them all. The setup makes it easy to get everything setup, then installed. | 168 | 29 | 3 | 4.655172 | 0.000000 | 0.831000 | 0.169000 | 0.647800 | 0.283333 | 0.564583 | 0 | 0 | 0.017857 | 1 | False | False | False | False | False | 1 | 0 | 1 | 0 | 1.000000 | 0 | 0 | 13 | 2 | 0 | 12 | 3 | 0 | 0.601007 |
| 37 | I was happy to be able to acquire this GLASS screen cover. It is about an 1/8 of an inch smaller side to side than the screen on my Nikon 1 J2! Provides solid protection and does not cover up any needing information on the screen. Craig S. | 239 | 49 | 4 | 3.816327 | 0.000000 | 0.887000 | 0.113000 | 0.680000 | 0.325000 | 0.556250 | 1 | 0 | 0.050209 | 4 | False | False | False | False | False | 1 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 19 | 1 | 0 | 18 | 1 | 0 | 0.769000 |
| 38 | We bought this so my wife would have a secondary monitor setup that she could use wherever: home office, work, or wherever. It works great for her on her WIndows laptops (both are Thinkpads). The integrated stand/case is great and the display is even fast enough that web videos (e.g. youtube) are watchable. They're not as good as native display, but the frame rate is fine. The whole setup is reasonably lightweight and portable.I have also used it briefly with my Macs. While Toshiba doesn't include the driver on the included CD rom, if you go to the DisplayLink.com web site, you can download OSX drivers from there.The only minor issue we have with it is that the place for storing the included USB cord in the cover/stand isn't the best design. It works OK, but it's not the most convenient way to store such a cable. | 832 | 157 | 12 | 4.133758 | 0.040000 | 0.888000 | 0.072000 | 0.605200 | 0.310417 | 0.520833 | 0 | 0 | 0.031250 | 0 | False | False | False | False | False | 4 | 1 | 0 | 0 | 0.800000 | 2 | 0 | 68 | 10 | 2 | 67 | 14 | 3 | 0.609330 |
| 39 | Installed Windows 7 Ultimate fast and easy. Probably the easiest intallation Ive ever installed on a hard drive as it was already pre-configured for Win7. The packaging was excellent. Great price btw... | 202 | 33 | 4 | 4.969697 | 0.035000 | 0.627000 | 0.338000 | 0.920100 | 0.356944 | 0.787500 | 0 | 0 | 0.039604 | 2 | False | False | False | False | False | 4 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 19 | 6 | 0 | 18 | 7 | 0 | 0.847419 |
| 40 | The Canon body cap is included with the purchase of your Canon SLR camera. If you happen to lose the cap, you need a new one. Don't risk damage to your camera body that will end up costing more than a replacement cap. The cap protects the camera's interior from stray dust particles and damage while your lens is off the camera. To save some money, look for anoff brand versionat a local camera shop. There are no special parts to this cap.PROS:Protects the interior of your cameraCONS:Expensive for a piece of plastic (but you gotta have protection.) | 556 | 103 | 7 | 4.262136 | 0.046000 | 0.810000 | 0.144000 | 0.854500 | 0.114448 | 0.381494 | 0 | 0 | 0.037770 | 0 | False | False | False | False | False | 0 | 0 | 0 | 0 | 0.500000 | 0 | 0 | 50 | 0 | 0 | 49 | 0 | 0 | 0.279240 |
| 41 | It is working without any problems.I bought it for my friend. He likes it and using everyday.It is good deal. | 109 | 22 | 4 | 3.909091 | 0.000000 | 0.656000 | 0.344000 | 0.836000 | 0.700000 | 0.600000 | 0 | 0 | 0.036697 | 0 | False | False | False | False | False | 1 | 1 | 0 | 1 | 0.500000 | 0 | 0 | 7 | 2 | 2 | 6 | 2 | 3 | 0.380800 |
| 42 | Sounds great but hard to get used to deep insertion. Don't plan on hearing too much outside noise in fact pretty much cuts out the whole world. Would be good if you did running or activities that other buds would fall out. Cord does get tangled in the pocket but no big deal. If you want to up grade your sound on your Ipod this is the way to go. | 349 | 71 | 5 | 3.816901 | 0.087000 | 0.765000 | 0.148000 | 0.714000 | 0.193939 | 0.437879 | 0 | 0 | 0.017192 | 0 | False | False | False | False | False | 2 | 0 | 0 | 0 | 1.000000 | 0 | 0 | 31 | 4 | 0 | 30 | 5 | 0 | 0.602988 |
| 43 | I find that I hardly use this product. The holder clip broke almost immediately and the unit does seat well with my iSkin attached. When it is connected I wasn't happy with the performance. I hoped to use this when I mountain biked, but it just doesn't perform. | 261 | 50 | 4 | 4.140000 | 0.084000 | 0.843000 | 0.072000 | -0.140300 | 0.254167 | 0.770833 | 0 | 0 | 0.030651 | 0 | False | False | False | False | False | 1 | 0 | 0 | 1 | 1.000000 | 1 | 0 | 18 | 2 | 0 | 17 | 3 | 0 | 0.508743 |
| 44 | EDIT 3/8/2013: After doing a second factory reset and updating the firmware it has a spanking new OS (4.2.1) that still freaks out the same way. So it definitely has to be a hardware issue. Having not treated the tablet roughly and having had it in a case since I started using it I would have to say that I just got a ticking bomb that just went off.If I rest the tablet flat with my hand in the middle or on a table it seems to freak out. If I hold the bottom left corner (when horizontal) it seems to function fine. However I can't hold it like that for long as it isn't comfortable. Once I release that corner it freaks out. Faulty manufacturing has to be the issue here.Asus customer service (after jumping through a few hoops) can't guarantee the will fix or replace it for free so having to ship this device back to the US via FedEx with damage insurance and then paying shipping cost back seems like a big gamble. The money would likely be better spent buying a new a completely different table from a different manufacture in the near future.That said I cannot recommend this or any other Asus product to anyone, *especially* if they live outside of the United States. The review is left at two stars because I purchased two of these tablets. One for me and my girlfriend and her's seems to still be working fine for now.-------------------------------EDIT 26/2/2013: For the last week the tablet has suddenly decided to launch applications on it's own or even type random letters while I try to use the keyboard to send a message. It's not limited to any one application as it even tries to re-size videos while I am watching them through MX Player. Even after doing a factory restore with limited application icons on the screen it will now try to change the wallpaper, which is suppose to happen when you tap and hold on the home screen. Seeing as I am not doing this it just seems the tablet has started to freak out.On checking forums it seems many others have had this issue after use and also straight out of the box. My tablet has not been dropped or damaged in anyway recently, so there is no known cause for this other than possible hardware issues. It has had the latest firmware update for a while with no issues until now.Thankfully I have not had the cracking screen issues some warned me about, but with the tablet randomly acting up after just a few months of use I can't safely recommend that anyone buys this or any other Asus tablet until this issue can be resolved. Unfortunately in checking with Amazon's return policy I am only able to get a partial refund, which could be nothing much at all.-------------------------------OLD REVIEW:Everyone loves the new iPad(3), but not everyone can afford one. Also some people want to do more with their tablet than Apple allows. You know stuff like connect external devices, transfer files, watch various video formsts and add more storage space. If you fall under that category then the Asus Transformer TF300 is the tablet for you.The TF300 is the budget version of the Asus Transformer TF700, which is their premium tablet. However the most major changes are that the back is made of a very sturdy and ribbed plastic rather than metal and the screen is not as bright as the TF700. the TF700 is 600nits of brightness and the TF300 is 300nits. What this means is that it's difficult to use the TF300 outdoors or anywhere that there will be lots of glare. The screen resolution is also slightly lower on the TF300 at 1280 by 800, but it's no slouch buy any means. The screen quality is beautiful and you can easily use it indoors at half the brightness. However if you feel a strong need to use your tablet outdoors in the harsh daylight you will need to fork over an additional $100 for the TF700.Performance wise you honestly won't have to go any higher than the balanced setting if you are playing simple games, reading books, playing music and surfing the web. However you can switch over to high performance for graphic intense games and other apps but your battery life will take a hit, depending on what you are doing. There is an energy saving mode, which by default the tablet switches to when the battery power gets to around 15%. This option I wouldn't recommend as it can cause the screen to flicker various brightness levels while watching video. Some people have complained about this tablet flickering and honestly this likely is the reason why. Thankfully you can choose not to use that setting and also set the tablet to not go into that mode when the battery is low. Battery life seems to be more than enough to go two days before charging it with light use. Heavy users that game, watch videos use wfi, bluetooth, GPS and connect external devices (like hard drives) will be able to make it through the daylight hours before they need a charge if it's set to balanced power setting. Having not tested high performance I cannot honestly say how long it would last.Currently this tablet comes with the Android Ice Cream Sandwich OS, but once you connect it to a Wifi network it will automatically download Jelly Bean. Thus far under Jelly Bean there have been far less issues with how the tablet performs and the OS is much more user friendly. That said the default web browser can crash and I've experienced this only once so far, but closing the browser app an resuming takes seconds to solve that issue. However I can't say if this is an OS issue, a buggy app or a bad coding on the specific website. That said you will find that some sites will still default to mobile versions, which has nothing to do with the tablet and all to do with web developers mainly focusing on building pages for the iPad experience and not Android. Hopefully they will correct this in the near future.The build quality seems to be very good. It feels sturdy and the material used don't feel cheap. Even the plastic used on the rear of the device feels well crafted and not cheap. Plus the tablet will likely be put into a case for protection so any complaints abut the use of plastic rather than metal are trivial. Much like the folks who complained abut the iPhone 5 metal casing being easy to scratch. Protect you investment with a case and you will be fine.The 8 megapixel rear camera is a decent performer, but don't expect photos and videos to be as crisp as ones from a DSLR or a point and shoot. It's basically great for quick snapshots in fair lighting conditions. If it gets to dark or of there are very bright and dark areas that you are photographing you will see the camera's limitations. That said if you can get a hold of and HDR app you should see better results. There is no LED flash so low light photography is a no go. With the 10" tablet form factor taking photos will seem a bit clunky. 7" is more ideal, but as always a DSLR camera is what you use when you are more serious about getting that winning shot.With the USB attachment you can connect external drives directly to your tablet and transfer files back and forth without the need of a computer. The Android file directory makes it very easy to copy and paste and create new folders. Also if you are the kind of individual who loves to customize your device then the TF300 with it's vanilla Android OS will fit your requirements like a glove.So if you are in the market for a price friendly 10" tablet that doesn't cut corners to get the price down, and delivers quality performance, then the Asus Transformer TF300 is the most ideal solution for you. | 7501 | 1403 | 67 | 4.235210 | 0.073000 | 0.822000 | 0.105000 | 0.995600 | 0.158319 | 0.509304 | 0 | 0 | 0.024663 | 75 | False | False | False | True | False | 8 | 8 | 2 | 2 | 0.500000 | 6 | 1 | 611 | 27 | 36 | 610 | 39 | 54 | 0.422279 |
| 45 | Pros: features and versatility: CD, HD radio, iPod/iPhone control, Bluetooth phone integration/music playback, Aux port, preamp outputs, 9 band equalizer. All features work as advertised. Great sound.Cons: HD radio reception could be better, USB connection on rear rather on front panel. Configuration can be complicated (but well worth the effort). Unit did not include extraction tools mentioned by instructions.First, thoughts on where to purchase: there is the question whether warranty support is jeopardized if an Alpine product is not purchased from an authorized dealer (Crutchfield will tell you this as well). I ordered mine from LegacyStereo through Amazon and had no problem registering the serial number on Alpine's web site. If the serial number is ground off the frame (as was the case for 1 reviewer), send it back ASAP and go with a different supplier!HD radio is a wonderful thing -- CD quality sound and many more (free) programming choices. Unfortunately, it's downfall the requirement of a strong signal. That said, the OEM HD raidio in my 2013 Subaru can maintain HD reception much better than the Alpine unit. But for the most part, it's OK within an urban area.Bluetooth and microphone work great for making/receiving hands-free phone calls as well as streaming music.IMO, sound quality is slightly better using the USB connection rather than BT. Plus, the USB port will continue to charge a connected device even when the Alpine unit is turned off. Having the USB connection on the rear and snaking the USB cable into the cabin could be a challenge for some installations. A front panel connection would be much cleaner and convenient.The HD148 has an almost overwhelming array of configuration options. Allow several hours of quality time with the manual to master them all. After tweaking the 9 band equalizer, crossover points for front and rear speakers and spatial effects, the sound was vastly better than just using the unit out of the box. I have a first generation Miata with speakers in the doors and headrests and now the HD148 coaxes so much more sound out of the speakers than my old head unit did.The HD148 is definitely worth it, and then some, with just a few minor drawbacks. | 2218 | 379 | 23 | 4.722955 | 0.013000 | 0.852000 | 0.134000 | 0.991000 | 0.310417 | 0.467708 | 1 | 0 | 0.037872 | 16 | False | False | False | False | False | 3 | 1 | 0 | 0 | 0.750000 | 1 | 0 | 205 | 12 | 2 | 204 | 18 | 3 | 0.705812 |
| 46 | I thought this was a great headset until I bought the HBS-730. I still use the 700's every week, have no complaints, but the 730's have better bass and a lady talks to you to tell you what's going on with the headset rather than beeping. I tried two other bluetooth headsets and both were pathetic compared to these. They have the right weight balance, and your ears NEVER get tired. | 386 | 75 | 4 | 4.026667 | 0.110000 | 0.766000 | 0.123000 | 0.252100 | -0.012755 | 0.622959 | 0 | 0 | 0.033679 | 9 | False | False | False | False | False | 1 | 1 | 0 | 1 | 0.500000 | 0 | 0 | 27 | 2 | 2 | 26 | 2 | 3 | 0.063079 |
| 47 | I bought this tablet when my computer was broken and had to use this and I am impressed with how responsive and great this tablet is. It is good for entertainment and work. | 172 | 33 | 2 | 4.181818 | 0.071000 | 0.575000 | 0.354000 | 0.906200 | 0.525000 | 0.687500 | 0 | 0 | 0.017442 | 0 | False | False | False | False | False | 3 | 1 | 0 | 0 | 0.750000 | 1 | 1 | 9 | 5 | 2 | 8 | 6 | 3 | 0.539955 |
| 48 | I thought I'd try this out, because I was worried about my Kindle Fire screen getting scratched. So I pulled it out of its cardboard envelope. But it's so thin, a film really, it wouldn't protect it from any deep scratch anyways. And from what I've read, the Kindle's screen glass is pretty tough. Then I read the back. It's like a decal you adhere to the screen. And there in the fine print: "Crease marks are permanent and will affect performance. ...You may notice rainbow-like patterns...when viewed at a slanted angle. It should not affect viewing or performance." There's that performance thing again. So if it doesn't protect it from deep scratches, could affect performance, and is pretty much a fancy decal, what's the point? Maybe if you have a kid with really grubby fingers that likes to smear jelly... but nah, it's not for me. I decided against risking sticking this decal on my screen and risking performance...for no real benefit. | 946 | 176 | 17 | 4.187500 | 0.136000 | 0.746000 | 0.118000 | 0.204000 | 0.052315 | 0.490278 | 0 | 1 | 0.023256 | 0 | False | False | False | False | False | 0 | 0 | 1 | 0 | 0.500000 | 2 | 0 | 77 | 0 | 0 | 76 | 0 | 0 | 0.221663 |
| 49 | Used it as a substitute for a failed wireless connection to a remote (in house) laser printer. Set up fairly simple, but do not connect via a power strip or extension. Use a wall outlet. Boxes are fairly large, so placing them in outlets that are not too view able is a good idea. 3 lights (some blinking) can also be objectionable. | 335 | 62 | 5 | 4.193548 | 0.036000 | 0.898000 | 0.065000 | 0.401900 | 0.135714 | 0.418452 | 0 | 0 | 0.011940 | 1 | False | False | False | False | False | 1 | 0 | 0 | 0 | 1.000000 | 1 | 0 | 29 | 2 | 0 | 28 | 3 | 0 | 0.647713 |
------------------------------------------------------------
STEP 3B: Aspect-Based Sentiment Analysis (ABSA)
2025-06-20 23:36:12 - INFO - run_absa - Initiating ABSA. 2025-06-20 23:36:12 - INFO - run_absa - Using rule-based ABSA fallback (TextBlob & NLTK). Using rule-based ABSA fallback (TextBlob & NLTK).
ABSA Batch Processing: 0%| | 0/99934 [00:00<?, ?reviews/s]
2025-06-20 23:37:31 - INFO - run_absa - ABSA complete: 99934 reviews processed.
2025-06-20 23:37:32 - INFO - run_absa - Raw ABSA results saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/absa_analysis/absa_raw_results.json
ABSA complete. 271306 aspect-sentiments found.
Review 0 example (method: rule-based_textblob): [{'aspect': 'quality', 'sentiment': 'positive', 'score': 0.16, 'context': 'If you were looking for a high quality cable do not buy this product.', 'method': 'rule-based_textblob'}, {'aspect': 'thin', 'sentiment': 'neutral', 'score': 0.0, 'context': 'I recieved a cheap thin flimsy cable that is not gold plated or anything else they claim here.', 'method': 'rule-based_textblob'}]
------------------------------------------------------------
STEP 4: Running Sentiment Models
2025-06-20 23:37:32 - INFO - run_models - Running models.
Running VADER...
2025-06-20 23:37:32 - INFO - run_models - Executing VADER.
VADER completed.
Running TextBlob...
2025-06-20 23:37:33 - INFO - run_models - Executing TextBlob.
TextBlob completed.
Running Feature-Based...
2025-06-20 23:37:34 - INFO - run_models - Executing Feature-Based.
Feature-Based completed.
Running Multidimensional...
2025-06-20 23:37:35 - INFO - run_models - Executing Multidimensional.
Multidimensional completed.
Running Rule-Based Enhanced...
2025-06-20 23:37:37 - INFO - run_models - Executing Rule-Based Enhanced.
Rule-Based Enhanced completed.
Running Hybrid Weighted...
2025-06-20 23:37:38 - INFO - run_models - Executing Hybrid Weighted.
Hybrid Weighted completed.
Running Lexicon Ensemble...
2025-06-20 23:37:40 - INFO - run_models - Executing Lexicon Ensemble.
Lexicon Ensemble completed.
Running N-gram Enhanced...
2025-06-20 23:37:42 - INFO - run_models - Executing N-gram Enhanced.
N-gram Enhanced completed.
Running RoBERTa Sentiment...
2025-06-20 23:37:43 - INFO - run_models - Executing RoBERTa Sentiment.
Transformer (twitter-roberta-base-sentiment-latest) Batch Predict: 0%| | 0/99934 [00:00<?, ?texts/s…
RoBERTa Sentiment completed.
Running Advanced Ensemble...
2025-06-21 00:30:12 - INFO - run_models - Executing Advanced Ensemble.
Advanced Ensemble completed.
2025-06-21 00:30:20 - INFO - run_models - Predictions saved to: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/model_predictions_with_features.csv
Model predictions with features saved to: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/model_predictions_with_features.csv
Preview of 'model_predictions_with_features.csv' (Top 50 rows, including full text):
| original_text | true_rating | detected_category | vader_stars | textblob_stars | feature_based_stars | multidimensional_stars | rule_based_stars | hybrid_stars | lexicon_ensemble_stars | ngram_enhanced_stars | roberta_sentiment_stars | ensemble_stars | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | What I recieved is not what is pictured here OR ADVERTIZED, but it is a vidio cable, and it does do the job I needed it for. If you were looking for a high quality cable do not buy this product. I recieved a cheap thin flimsy cable that is not gold plated or anything else they claim here. Bait and Switch? or a mistake in the order !!!!! . I do not know. I will attempt to contact the sender and find out. I contacted the seller and they told me to contact amazon.com so i did, and amazon.com was good enough to give me a $4.00 refund; which is good, because all this cable is woth is $2 to $3. I only needed it to run my wife's kareokee to the TV. If it was for any thing else I would have sent it back for a full refund. I'm surprised that this item is still listed as a high grade cable. | 1 | clothing | 5 | 3 | 4 | 4 | 5 | 5 | 3 | 4 | 1 | 4 |
| 1 | Excellent unit and a pretty simple install using the wiring adapter and removal tools I purchased with it. Kenwood quality is evident in the look and sound today and bodes well for the future. If you get the extra stuff its really simple to install--just be sure you have the frame on correctly (I 'd use a sharpie and mark it 'top' and 'front' before you slide it off the radio to bend the tabs out so it will fit snugly in the dash). This one went in my wife's 99 Miata and I'll likely do another in mine because it will be even simpler the next time. She also reports that the CD player is pretty skip-free, which isn't easy in a sports car. | 5 | clothing | 5 | 3 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 2 | I'm enjoying this keyboard, I'm getting another one for my other laptop that I keep at home.I've had this now for almost a year. Yes, I experience the BT lag, too, but I live with it. (Hence the 4 stars instead of 5) ***UPDATE*** (Now 5 stars--see update below.) Would I buy it again? Well, yes...as I said, I'm buying another. One BT annoyance is that you can pair your device with only one other device.Great layout, excellent size, superb tactile feel. One big advantage with a wireless keyboard and using a note/netbook is that you are no longer at the mercy of how high the desk/table/airline tray is--you can have the comfort (and more healthy) height of typing from your lap. I love it!I love the slim design and the power off button--it fits great in my laptop backpack. It is so light, too. With my 2.8 lbs. Asus netbook, adding this lightweight is really nothing. And because of its size, it fits in any bag, attaché, backpack, etc. easily.***UPDATE***Been using my two MS Mobile 6000's for a year now. Still loving it. Also--I am using it on my iPod Touch! I no longer am taking my netbook or my laptop to school. Just this keyboard and my Touch. Can't beat that.I came across a post that helped me solve any BT wake up issues. Instead of 20 seconds or so of waiting, it only takes about 2 seconds to wake up. Also, since replacing my laptop, I was experiencing seriously annoying disconnections, sometimes requiring deleting it from BT and reinstalling it. This blog post solved it all. In my case, all I needed to do was to clear the checkbox "Allow the computer to turn off this device to save power" in Device Manager and NO MORE PROBLEMS!!! Here's the link:[...]Enjoy! | 5 | electronics | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 3 | Overall, this is a fantastic camera that I'm extremely pleased with.However, I bought it to take pictures indoors without flash. I was prepared for lower quality images indoors without a flash, but the Lumix does not do nearly as well as my Canon Elph in identical lighting situations. The flash is good, but if you want a camera to shoot indoors without flash, be prepared for fairly noisy images with a lot of artifacts. | 4 | electronics | 4 | 4 | 5 | 5 | 2 | 4 | 4 | 4 | 5 | 5 |
| 4 | These work very well with mySamsung PN64D7000 64-Inch 1080p 600 Hz 3D Plasma HDTV (Black). They come in a nice felt bag inside a zipped hard case. They fit very well even over my glasses (which are 58 mm from side to side FWIW). They charge via a microsub cable (included, in case you don't already have a bunch). I like them more than my Samsung SSG-3050s. I'll buy more of these. One tip -- they don't seem to auto-associate the first time you turn them on. So, first fully charge them, then turn on your TV, then press and hold the power button until it blinks rapidly. Then it will associate and work great. | 5 | clothing | 5 | 3 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 5 | Its much more powerful then I expected!!!!!BIG,DEEP ,WINDOW BREAKING BASS What I really like about it you can fine tune it to your liking. Some subs sound good with movies,and terrible with music, this sub is truly fantastic with both. | 5 | electronics | 5 | 3 | 5 | 5 | 5 | 5 | 4 | 4 | 5 | 5 |
| 6 | A lot of computer fans come with the small 3 pin connector and no adapter to plug in to the power supply. And a lot of motherboards do not have any spare fan power pins. Therefore, a small pile of these is handy to have around if you ever have to add or replace certain fans.I found these at two bucks each with no additional shipping charge (Prime subscription) and ordered 5 along with one of these:Cooler Master 120mm Silent Case Fan 4-in-1 Value Pack - (R4-S2S-124K-GP) | 5 | clothing | 4 | 3 | 4 | 3 | 3 | 4 | 2 | 4 | 3 | 3 |
| 7 | I finally found a 10 foot lightning cable to replace the old iPhone cable that I travel with. Because so many hotel rooms don't have convenient electric plugs, the long cable had been a lifesaver. This one works fine but it is so thick and heavy that it's not really suitable for travel applications. | 3 | beauty | 4 | 3 | 3 | 3 | 3 | 3 | 2 | 4 | 1 | 3 |
| 8 | VERY POOR QUALITY I USED IT ONCE AND THE CONNECTION BROKE THE FIRST DAY !! IT SHOULD HAVE BEEN ON A SMALL CABLE | 2 | clothing | 1 | 2 | 1 | 4 | 1 | 1 | 3 | 2 | 1 | 1 |
| 9 | I got this camera *years* ago! I still work with it occasionally, but back in it's hayday, I used it for bulb photography with lightning. The plus was using infinity and not autofocus (because the autofocus is horrendous), but the negatives were a maximum 60 second bulb and lots of noise. Of course, back when this camera was $1,000+, it was pretty good. Still, in the daylight it takes beautifully vivid photos. I upgraded the firmware on it just before Konica halted the production of all cameras, which was supposed to fix the autofocus, but didn't make any difference to me. It's been through rain, snow and heat and has still held up. She's probably been through at least 10,000 pictures (lots of lightning photos that contained no lightning, probably every 95 in 100 were deleted). Very robust. Still gets four stars despite it's problems. I'll keep it til it dies! | 4 | electronics | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 5 | 4 |
| 10 | I've been using this for the last 3 years or so. It is excellent -- great range, and I cannot recall last time I changed the battery. I have young kids, they've taken it apart (removed the track ball) million times, smacked it into the ground, thrown it, no problems. Works like a charm. I'm going to get another one for my 2nd HTPC. | 5 | electronics | 5 | 4 | 5 | 4 | 5 | 5 | 4 | 4 | 5 | 5 |
| 11 | I purchased this huge headset to use for music and softphone. It sounds great in stereo and 7.1 but the mic is absolutely useless. All the other end hears is a humming background noise. They cant make out what im saying so it has to go....on to the next one. | 3 | unknown | 2 | 3 | 2 | 4 | 2 | 2 | 3 | 3 | 1 | 2 |
| 12 | This is definitely a replacement for the original jambox. Personally I find that it has a louder and crisper sound as compared to the to the original. The sound for it's size is great. Perfect for a office, bedroom or any setting for maybe 4 people max in a small room. The build is solid and has a good weight to it. The battery life is great. I was able to get over 8 hours of continuous play with the volume at 70%. Overall I'm very pleased with this speaker and highly recommend it. | 5 | clothing | 5 | 4 | 5 | 5 | 4 | 5 | 4 | 5 | 5 | 5 |
| 13 | This adapter does its job and does it well. Unlike the Apple MacBook power adapters, this consistently works. I've had the kindle for a few years now and the adapter is durable and doesn't show any signs of wear. | 5 | electronics | 4 | 3 | 4 | 5 | 4 | 4 | 5 | 4 | 5 | 4 |
| 14 | I have used one of these mounts for over a year now. This is my second for my second car and second Garmin. THis is a superior mount to the suction mount in my opinion. It is much easier to use and stays where you place it. I have traveled cross country with this and had absolutely no problems with it. It sits properly on my dash; it is easy to mount the Garmin on it and it is easier to read and hear from the distance that it is from me as opposed to the suction mount. I found the suction mount hard to use. It was a very long reach to mount it to my windshield and since I was traveling to California it was also illegal. The bean bag mount hasn't disappointed me yet. It has yet to move from the place that I have set it. I have not had a near accident with it in place so I don't know how it stays in place during emergency maneuvers, but so far I would say it is going to work as well as any other mounting device. I highly recommend this mount. | 5 | books | 5 | 3 | 5 | 4 | 5 | 5 | 3 | 4 | 5 | 5 |
| 15 | So far so good with this shoulder strap. I didn't have much faith in this product at first.But after trying it a few times its a Great Strap. I added an extra secure line to the camera just in case.I use this on my backup inexpensive body. I still wouldn't put my expensive body or any of the L lens on it. I rather play it safe than sorry :)Definitely a lot more comfortable over the straps that is provided with the camera. Next step is to buy a reliable Black Rapid Fastenr (FR-3)to replace this cheap one. I will | 4 | electronics | 5 | 3 | 5 | 5 | 5 | 5 | 4 | 5 | 5 | 5 |
| 16 | Brought for husband to use. Good fit for his surround sound system. He's happy with the purchase and so am I | 4 | clothing | 5 | 4 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 17 | While originally looking to overhauling my old PC, I was actually shown this case by a fellow Amazon customer after they brought it to my attention, and figured that I'm actually better off having one built from complete scratch.But what really made this case unique, was not only does it light blue once turned on, but having 5 pre-installed fans built into it and also having the option to add 2 more for a total of 7 fans (good if you're a heavy overclocker), which gives an excellent amount of airflow. So for those who like building computers from scratch, I highly recommend getting this case!!!! | 5 | books | 5 | 3 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 18 | This keyboard is awesome. I honestly could do without the light that comes on whenever you get close to it, but I guess it's good because it reminds you that you left it on and therefore that could be a battery saver. I have only tested it with my apple products (Macbook Pro, iPhone 5S and iPad air) and it works flawlessly. I have not tested it with Windows but I have heard that it works well there too. | 5 | electronics | 5 | 4 | 5 | 5 | 2 | 4 | 4 | 5 | 5 | 5 |
| 19 | I have 16gb of these in my Maximus IV Extrme z and they work great. Windows gave them a 7.9 the highest score on the ratings. | 5 | unknown | 4 | 5 | 5 | 5 | 4 | 5 | 4 | 5 | 5 | 5 |
| 20 | I am very happy with this card; good value, I would buy it again and would recommend it to others. | 5 | books | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 21 | This case is perfect for my SD600. My only complaint is that if the wrist-strap is not threaded through the top hole it doesn't close right. Minor issue. It's small, has a belt loop (not a clip, which is not dependable) and it's a hard case so it'll protect the camera in a handbag or pocket. I recommend it. | 4 | clothing | 5 | 3 | 5 | 4 | 5 | 5 | 3 | 4 | 5 | 5 |
| 22 | I bought this for my father to replace the crappy one that I snapped in half. I must say that I love this thing. The price is high, but the fact that it feels so substantial, moreso than any other keyboard I have ever used before, and that the backlighting automatically pops up when you are within an inch of the keys, makes it almost feel intuitive. very good wireless keyboard for those who have a seperate mouse and dislike trackpads. | 5 | electronics | 4 | 3 | 5 | 5 | 5 | 4 | 5 | 4 | 5 | 5 |
| 23 | Now I hated the stupid mouse that came with my imac and wasn't to unhappy when the little scroll ball finally stopped working, but this mouse is just junk. At least on my imac the dependably of it is less than 50%. More than half of my clicks don't register and the movement is sometimes smooth but mostly choppy. Plus no side scrolling is a downer. I know for $18 what was i expecting right. I can't speak for other computers, but if your looking for a replacement for an imac then DO NOT buy this crappy mouse. | 1 | electronics | 1 | 2 | 1 | 3 | 1 | 1 | 3 | 2 | 1 | 1 |
| 24 | I purchased this to charge the batteries for my Motorola Verizon Droid 2X Global phone. It works really well. It was a replacement for another wall charger. I purchased the other and it worked but I lost it so I purchased another and it was the same but the batteries no longer fit. This one is great as the contacts are somewhat reconfigurable and the length can be adjusted with a spring to hold the battery in so no need for a precise fit which was the problem with other battery charger. The other issue is this can apparently automatically sense the polarity of the battery contacts and so you don't have to worry about accidentally putting it in backwards which would be a potential issue for a reconfigurable battery charger like this is. Assuming this lasts, this is a great product and works like it should. | 5 | electronics | 5 | 3 | 5 | 4 | 5 | 5 | 3 | 4 | 5 | 5 |
| 25 | This works great with my iphone 5 and other android devices one thing to know though is you'll need up to date bluetooth capabilities for example my macbook air mid2011 will not pair with this device.I would still recommend this for sure to anyone with bluetooth firmware more up to date. | 4 | books | 5 | 4 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 26 | Love everything about it. Would have given it a five star but at the time that I purchased it not many compatible apps. | 4 | electronics | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 27 | We tried this out with both the iPod and the iPhone. It's a nice little alarm clock with an AM/FM radio and a dock for your device.There is an application available that lets you specify bass and treble levels. You can toggle military or U.S. time. You can sync your iPod Touch or iPhone automatically with the clock. You can set two alarms on your phone or iPod, and you can set up the music you want for your alarm. There's a dimmer for the clock, though we didn't find it too obtrusive.It charges your phone, and we like it for that because it looks better than a charger.There's a remote, but it doesn't sync to your device and let you identify and jump to a particular song. There are remotes out now with this feature.It's attractive, the sound quality is decent, and you can move the speakers away from the clock to suit your preferences. We think this would be good for a dorm room.This is a nice item and it does its job. | 4 | electronics | 5 | 3 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 28 | I only have this for a day, but I did some testing on this, importing some photos and a video to my 4th generation iPad. There is a small card packed with the device that lists the problems that you may have, so some of these are "documented bugs". I got one message that this is an unsupported device, the card says to ignore this. It occasionally is difficult to get the device to be recognized, but some tinkering with the sequence of connection and launch of the photo app.eventually brings it up (documented). The imports were all successful. IOS crashed twice while I was testing (not documented). I think that this can be prevented by ending the photo program before you disconnect the device. Since this is an intermittent problem, I am not sure of this fix, but it didn't crash after I tried this. In summary, this is much cheaper than the Apple device and it does work, but with some quirks. | 3 | electronics | 1 | 3 | 1 | 3 | 1 | 1 | 2 | 1 | 3 | 1 |
| 29 | I got this because I read that if you shoot video with a DSLR, you need a fast card with fast write times. They were correct. I use this to shoot videos and it works very well. I have since retired it after 2 years of use for an even faster card by the same manufacturer. This card served me very well and I highly recommend these cards to anyone who shoots video from and SLR or from and digital video camera that uses SD cards. Exceptional product. | 5 | electronics | 4 | 3 | 5 | 5 | 5 | 4 | 5 | 4 | 5 | 5 |
| 30 | I am very pleased with the NE56R34u laptop. Since it is my first laptop I cannot judge from other models.The first thing I did was upgrade the ram to 8 gigs which made it very speedy. I also upgraded to windows 8 pro and now this baby screams.Even though this has a low-end Pentium processor it works for what I need it to do which is word processing, email, watching videos and light web browsing. Cannot go wrong for the price ( 320.00 ) from Amazon. | 5 | electronics | 5 | 3 | 5 | 5 | 5 | 5 | 5 | 4 | 5 | 5 |
| 31 | I already have an Onkyo receiver as my home theater receiver and have been immensely satisfied with it. I decided to go with Onkyo again when setting up speakers above my kitchen cabinets for CD and radio listening when I am in the kitchen cooking or washing dishes, etc. The TX-8222 has proven to be a worthy purchase. The speaker wire posts are screw-on binding posts, not spring clips as in cheaper models by other manufacturers. Definitely makes it easier to connect wire to the back. The 50 watts are more than powerful enough to power a pair of Sony 3-way bookshelf speakers. FM radio reception is pretty good, and the unit remembers your station presets even if the power cord is unplugged from the outlet. My two complaints about the receiver are minor - there is no numerical volume indicator on the display when you raise or lower the volume, which would have been nice, and the volume dial on the receiver moves rather pointlessly when adjusting the volume by remote. For the price though, this model can't be beat if you're looking for a stereo receiver. | 4 | electronics | 5 | 3 | 5 | 4 | 5 | 5 | 4 | 4 | 5 | 5 |
| 32 | Many gaming mousepads come with a travel case, this one doesn't. The mousepad is nice though. | 3 | unknown | 4 | 4 | 5 | 4 | 4 | 4 | 4 | 4 | 5 | 4 |
| 33 | The Plantronics GameCom 777 Surround Sound Gaming Headset has a few things going for it, but comfort and ease of set-up are not among them. After working in radio for many years, wearing headphones for hours per day, you learn quickly what does and doesn't work. As far as comfort goes, these simply don't work.Now I'll be the first to admit it can't be easy to design a pair of truly comfortable over the ear headphones (in broadcasting we call them cans). There are many things to consider; from variations in the user's ears and head width, to depth of cushioning, etc.I find the 777s to be too tight and the interior space of each ear piece to small. The result is a headphone that feels bad right from the start and only gets worses the longer you wear it.As far as set-up goes the 777 is a train wreck. No instructions, and a very hit ans miss driver. Sometimes the computer recognizes it, sometimes not.Once installed, the mic on the headset does it's job. but is nothing special.The one truly redeeming factor for this product is the sound. While there is of course no way to create a true surround sound experience with a headphone, I found the 777s to have good full drive, plenty of base and a pretty crisp high-end. | 3 | clothing | 5 | 3 | 5 | 4 | 2 | 4 | 3 | 4 | 1 | 4 |
| 34 | I bought this TV to replace my old Sony tube TV which was defective and had a greenish screen. That TV was only a few years old, too, which doesn't say too much for Sony products. This TV, however, is so beautiful; it is FAR superior to the old tube TV I had. There is just no comparison. The colors are vibrant and the contrast is amazing, especially in HD. It is my first HD TV and I can definitely see why people love these TVs so much.The sound is just okay. I do not have the sound distortion problem resulting from using the QAM tuner and not a cable box with Comcast with this TV. Hopefully, I will never get this problem since it is a major issue with the 32" Samsung TV we bought shortly after this one. You can see what I mean by reading my review on the LN32A330 model. Apparently, most of Samsung's tuners are defective in these TVs and do not work well with cable signals (mainly Comcast) unless there is a cable box. This results in distorted or "robotic" sound on HD channels at regular intervals.I highly recommend this TV ONLY if you use a cable box. I personally wouldn't take a chance with it if you have Comcast or any other cable without a cable box. My 26" doesn't have the sound problem, but it could only be a matter of time before it pops up, which I have heard does happen. | 4 | electronics | 5 | 3 | 5 | 4 | 2 | 4 | 3 | 4 | 5 | 4 |
| 35 | I recently tried a Bioserie Bioplastic Cover for iPod touch 4G which costs $24.95. It kept losing it's shape and spitting out my ipod touch and it only offered protection from scratches.This Amazon basic cover at less than $10 does hold my ipod and it's design will not only protect from scratches on the back but also protect the device if I drop it.All the buttons still work fine and it's easy to access the charging slot.I keep my ipod in my pocket and the cover does not interfere with that. | 4 | unknown | 3 | 3 | 3 | 4 | 2 | 3 | 4 | 4 | 3 | 3 |
| 36 | Works really well. We have 4 different mount configurations, and this has been able to handle them all. The setup makes it easy to get everything setup, then installed. | 5 | unknown | 4 | 3 | 5 | 5 | 4 | 4 | 4 | 4 | 5 | 4 |
| 37 | I was happy to be able to acquire this GLASS screen cover. It is about an 1/8 of an inch smaller side to side than the screen on my Nikon 1 J2! Provides solid protection and does not cover up any needing information on the screen. Craig S. | 4 | electronics | 4 | 4 | 5 | 5 | 5 | 4 | 5 | 5 | 5 | 5 |
| 38 | We bought this so my wife would have a secondary monitor setup that she could use wherever: home office, work, or wherever. It works great for her on her WIndows laptops (both are Thinkpads). The integrated stand/case is great and the display is even fast enough that web videos (e.g. youtube) are watchable. They're not as good as native display, but the frame rate is fine. The whole setup is reasonably lightweight and portable.I have also used it briefly with my Macs. While Toshiba doesn't include the driver on the included CD rom, if you go to the DisplayLink.com web site, you can download OSX drivers from there.The only minor issue we have with it is that the place for storing the included USB cord in the cover/stand isn't the best design. It works OK, but it's not the most convenient way to store such a cable. | 5 | electronics | 4 | 4 | 5 | 4 | 5 | 5 | 4 | 4 | 5 | 5 |
| 39 | Installed Windows 7 Ultimate fast and easy. Probably the easiest intallation Ive ever installed on a hard drive as it was already pre-configured for Win7. The packaging was excellent. Great price btw... | 5 | electronics | 5 | 4 | 5 | 5 | 5 | 5 | 5 | 5 | 5 | 5 |
| 40 | The Canon body cap is included with the purchase of your Canon SLR camera. If you happen to lose the cap, you need a new one. Don't risk damage to your camera body that will end up costing more than a replacement cap. The cap protects the camera's interior from stray dust particles and damage while your lens is off the camera. To save some money, look for anoff brand versionat a local camera shop. There are no special parts to this cap.PROS:Protects the interior of your cameraCONS:Expensive for a piece of plastic (but you gotta have protection.) | 5 | electronics | 5 | 3 | 5 | 4 | 5 | 5 | 3 | 4 | 3 | 4 |
| 41 | It is working without any problems.I bought it for my friend. He likes it and using everyday.It is good deal. | 4 | unknown | 5 | 5 | 5 | 4 | 2 | 5 | 3 | 4 | 5 | 5 |
| 42 | Sounds great but hard to get used to deep insertion. Don't plan on hearing too much outside noise in fact pretty much cuts out the whole world. Would be good if you did running or activities that other buds would fall out. Cord does get tangled in the pocket but no big deal. If you want to up grade your sound on your Ipod this is the way to go. | 3 | unknown | 5 | 3 | 5 | 5 | 5 | 5 | 5 | 4 | 5 | 5 |
| 43 | I find that I hardly use this product. The holder clip broke almost immediately and the unit does seat well with my iSkin attached. When it is connected I wasn't happy with the performance. I hoped to use this when I mountain biked, but it just doesn't perform. | 1 | electronics | 3 | 3 | 4 | 5 | 3 | 3 | 4 | 4 | 1 | 3 |
| 44 | EDIT 3/8/2013: After doing a second factory reset and updating the firmware it has a spanking new OS (4.2.1) that still freaks out the same way. So it definitely has to be a hardware issue. Having not treated the tablet roughly and having had it in a case since I started using it I would have to say that I just got a ticking bomb that just went off.If I rest the tablet flat with my hand in the middle or on a table it seems to freak out. If I hold the bottom left corner (when horizontal) it seems to function fine. However I can't hold it like that for long as it isn't comfortable. Once I release that corner it freaks out. Faulty manufacturing has to be the issue here.Asus customer service (after jumping through a few hoops) can't guarantee the will fix or replace it for free so having to ship this device back to the US via FedEx with damage insurance and then paying shipping cost back seems like a big gamble. The money would likely be better spent buying a new a completely different table from a different manufacture in the near future.That said I cannot recommend this or any other Asus product to anyone, *especially* if they live outside of the United States. The review is left at two stars because I purchased two of these tablets. One for me and my girlfriend and her's seems to still be working fine for now.-------------------------------EDIT 26/2/2013: For the last week the tablet has suddenly decided to launch applications on it's own or even type random letters while I try to use the keyboard to send a message. It's not limited to any one application as it even tries to re-size videos while I am watching them through MX Player. Even after doing a factory restore with limited application icons on the screen it will now try to change the wallpaper, which is suppose to happen when you tap and hold on the home screen. Seeing as I am not doing this it just seems the tablet has started to freak out.On checking forums it seems many others have had this issue after use and also straight out of the box. My tablet has not been dropped or damaged in anyway recently, so there is no known cause for this other than possible hardware issues. It has had the latest firmware update for a while with no issues until now.Thankfully I have not had the cracking screen issues some warned me about, but with the tablet randomly acting up after just a few months of use I can't safely recommend that anyone buys this or any other Asus tablet until this issue can be resolved. Unfortunately in checking with Amazon's return policy I am only able to get a partial refund, which could be nothing much at all.-------------------------------OLD REVIEW:Everyone loves the new iPad(3), but not everyone can afford one. Also some people want to do more with their tablet than Apple allows. You know stuff like connect external devices, transfer files, watch various video formsts and add more storage space. If you fall under that category then the Asus Transformer TF300 is the tablet for you.The TF300 is the budget version of the Asus Transformer TF700, which is their premium tablet. However the most major changes are that the back is made of a very sturdy and ribbed plastic rather than metal and the screen is not as bright as the TF700. the TF700 is 600nits of brightness and the TF300 is 300nits. What this means is that it's difficult to use the TF300 outdoors or anywhere that there will be lots of glare. The screen resolution is also slightly lower on the TF300 at 1280 by 800, but it's no slouch buy any means. The screen quality is beautiful and you can easily use it indoors at half the brightness. However if you feel a strong need to use your tablet outdoors in the harsh daylight you will need to fork over an additional $100 for the TF700.Performance wise you honestly won't have to go any higher than the balanced setting if you are playing simple games, reading books, playing music and surfing the web. However you can switch over to high performance for graphic intense games and other apps but your battery life will take a hit, depending on what you are doing. There is an energy saving mode, which by default the tablet switches to when the battery power gets to around 15%. This option I wouldn't recommend as it can cause the screen to flicker various brightness levels while watching video. Some people have complained about this tablet flickering and honestly this likely is the reason why. Thankfully you can choose not to use that setting and also set the tablet to not go into that mode when the battery is low. Battery life seems to be more than enough to go two days before charging it with light use. Heavy users that game, watch videos use wfi, bluetooth, GPS and connect external devices (like hard drives) will be able to make it through the daylight hours before they need a charge if it's set to balanced power setting. Having not tested high performance I cannot honestly say how long it would last.Currently this tablet comes with the Android Ice Cream Sandwich OS, but once you connect it to a Wifi network it will automatically download Jelly Bean. Thus far under Jelly Bean there have been far less issues with how the tablet performs and the OS is much more user friendly. That said the default web browser can crash and I've experienced this only once so far, but closing the browser app an resuming takes seconds to solve that issue. However I can't say if this is an OS issue, a buggy app or a bad coding on the specific website. That said you will find that some sites will still default to mobile versions, which has nothing to do with the tablet and all to do with web developers mainly focusing on building pages for the iPad experience and not Android. Hopefully they will correct this in the near future.The build quality seems to be very good. It feels sturdy and the material used don't feel cheap. Even the plastic used on the rear of the device feels well crafted and not cheap. Plus the tablet will likely be put into a case for protection so any complaints abut the use of plastic rather than metal are trivial. Much like the folks who complained abut the iPhone 5 metal casing being easy to scratch. Protect you investment with a case and you will be fine.The 8 megapixel rear camera is a decent performer, but don't expect photos and videos to be as crisp as ones from a DSLR or a point and shoot. It's basically great for quick snapshots in fair lighting conditions. If it gets to dark or of there are very bright and dark areas that you are photographing you will see the camera's limitations. That said if you can get a hold of and HDR app you should see better results. There is no LED flash so low light photography is a no go. With the 10" tablet form factor taking photos will seem a bit clunky. 7" is more ideal, but as always a DSLR camera is what you use when you are more serious about getting that winning shot.With the USB attachment you can connect external drives directly to your tablet and transfer files back and forth without the need of a computer. The Android file directory makes it very easy to copy and paste and create new folders. Also if you are the kind of individual who loves to customize your device then the TF300 with it's vanilla Android OS will fit your requirements like a glove.So if you are in the market for a price friendly 10" tablet that doesn't cut corners to get the price down, and delivers quality performance, then the Asus Transformer TF300 is the most ideal solution for you. | 2 | electronics | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 2 |
| 45 | Pros: features and versatility: CD, HD radio, iPod/iPhone control, Bluetooth phone integration/music playback, Aux port, preamp outputs, 9 band equalizer. All features work as advertised. Great sound.Cons: HD radio reception could be better, USB connection on rear rather on front panel. Configuration can be complicated (but well worth the effort). Unit did not include extraction tools mentioned by instructions.First, thoughts on where to purchase: there is the question whether warranty support is jeopardized if an Alpine product is not purchased from an authorized dealer (Crutchfield will tell you this as well). I ordered mine from LegacyStereo through Amazon and had no problem registering the serial number on Alpine's web site. If the serial number is ground off the frame (as was the case for 1 reviewer), send it back ASAP and go with a different supplier!HD radio is a wonderful thing -- CD quality sound and many more (free) programming choices. Unfortunately, it's downfall the requirement of a strong signal. That said, the OEM HD raidio in my 2013 Subaru can maintain HD reception much better than the Alpine unit. But for the most part, it's OK within an urban area.Bluetooth and microphone work great for making/receiving hands-free phone calls as well as streaming music.IMO, sound quality is slightly better using the USB connection rather than BT. Plus, the USB port will continue to charge a connected device even when the Alpine unit is turned off. Having the USB connection on the rear and snaking the USB cable into the cabin could be a challenge for some installations. A front panel connection would be much cleaner and convenient.The HD148 has an almost overwhelming array of configuration options. Allow several hours of quality time with the manual to master them all. After tweaking the 9 band equalizer, crossover points for front and rear speakers and spatial effects, the sound was vastly better than just using the unit out of the box. I have a first generation Miata with speakers in the doors and headrests and now the HD148 coaxes so much more sound out of the speakers than my old head unit did.The HD148 is definitely worth it, and then some, with just a few minor drawbacks. | 4 | electronics | 5 | 4 | 5 | 5 | 5 | 5 | 4 | 5 | 5 | 5 |
| 46 | I thought this was a great headset until I bought the HBS-730. I still use the 700's every week, have no complaints, but the 730's have better bass and a lady talks to you to tell you what's going on with the headset rather than beeping. I tried two other bluetooth headsets and both were pathetic compared to these. They have the right weight balance, and your ears NEVER get tired. | 5 | unknown | 4 | 3 | 4 | 3 | 3 | 4 | 3 | 3 | 5 | 3 |
| 47 | I bought this tablet when my computer was broken and had to use this and I am impressed with how responsive and great this tablet is. It is good for entertainment and work. | 5 | electronics | 5 | 4 | 5 | 4 | 4 | 5 | 4 | 4 | 5 | 5 |
| 48 | I thought I'd try this out, because I was worried about my Kindle Fire screen getting scratched. So I pulled it out of its cardboard envelope. But it's so thin, a film really, it wouldn't protect it from any deep scratch anyways. And from what I've read, the Kindle's screen glass is pretty tough. Then I read the back. It's like a decal you adhere to the screen. And there in the fine print: "Crease marks are permanent and will affect performance. ...You may notice rainbow-like patterns...when viewed at a slanted angle. It should not affect viewing or performance." There's that performance thing again. So if it doesn't protect it from deep scratches, could affect performance, and is pretty much a fancy decal, what's the point? Maybe if you have a kid with really grubby fingers that likes to smear jelly... but nah, it's not for me. I decided against risking sticking this decal on my screen and risking performance...for no real benefit. | 2 | electronics | 4 | 3 | 4 | 4 | 4 | 4 | 4 | 3 | 1 | 4 |
| 49 | Used it as a substitute for a failed wireless connection to a remote (in house) laser printer. Set up fairly simple, but do not connect via a power strip or extension. Use a wall outlet. Boxes are fairly large, so placing them in outlets that are not too view able is a good idea. 3 lights (some blinking) can also be objectionable. | 4 | electronics | 4 | 3 | 5 | 5 | 5 | 4 | 5 | 4 | 3 | 4 |
Model prediction phase finished! Models run: VADER, TextBlob, Feature-Based, Multidimensional, Rule-Based Enhanced, Hybrid Weighted, Lexicon Ensemble, N-gram Enhanced, RoBERTa Sentiment, Ensemble Final DF shape: (99934, 49) ------------------------------------------------------------
STEP 5: Model Evaluation & Analysis
2025-06-21 00:30:20 - INFO - evaluate_models - Initiating model evaluation. 2025-06-21 00:30:20 - INFO - evaluate_models - Evaluating model: VADER 2025-06-21 00:30:20 - INFO - evaluate_model - Evaluating model: VADER (column: vader_stars)... Evaluating model: VADER... --- VADER Performance Metrics ---
| Metric | Value | |
|---|---|---|
| 0 | Accuracy (Exact) | 0.4815 |
| 1 | Accuracy (+/-1 Star) | 0.8025 |
| 2 | MAE | 0.8260 |
| 3 | RMSE | 1.3077 |
| 4 | F1 Score (Macro) | 0.3053 |
| 5 | F1 Score (Weighted) | 0.4882 |
| 6 | F1 Score (+/-1 Star) | 0.8904 |
| 7 | Precision (Macro) | 0.3069 |
| 8 | Recall (Macro) | 0.3060 |
| 9 | Cohen's Kappa | 0.1343 |
| 10 | Sample Size | 99,934 |
------------------------------------
2025-06-21 00:30:21 - INFO - save_worst_predictions_to_csv - Worst predictions CSV for VADER saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/worst_predictions_analysis/vader_worst_predictions.csv --- Top 50 Worst Predictions for Model: VADER (Error >= 1) ---
| index | true_rating | predicted_rating | error | vader_compound | textblob_polarity | custom_score | word_count | text_preview | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 5 | 4 | 0.845 | 0.143 | 0.232 | 167 | What I recieved is not what is pictured here OR ADVERTIZED, but it is a vidio cable, and it does do the job I needed it for. If you were looking for a high quality cable do not buy this product. I recieved a cheap thin flimsy cable that is not gold plated or anything else they claim here. Bait and Switch? or a mistake in the order !!!!! . I do not know. I will attempt to contact the sender and find out. I contacted the seller and they told me to contact amazon.com so i did, and amazon.com was good enough to give me a $4.00 refund; which is good, because all this cable is woth is $2 to $3. I only needed it to run my wife's kareokee to the TV. If it was for any thing else I would have sent it back for a full refund. I'm surprised that this item is still listed as a high grade cable. |
| 1 | 45112 | 5 | 1 | 4 | 0.843 | 0.118 | 0.777 | 66 | After reading the numerous positive reviews took the plunge and ordered this for my new Vizio 60" LED to wall mount. Wall bracket very well made and simple to mount! Very sturdy. One reviewer gave one star because he said vertical brackets were to short, he apparently didn't read they include 2 extensions so it'll fit.Great product getting ready to order another! |
| 2 | 44391 | 5 | 1 | 4 | 0.882 | 0.234 | 0.614 | 126 | Love the clicking, love the mechanical feel. I grew up on the initial IBM PC's in the 1980's and this is like going back in time. Just feels right. Yes, it is more money but what do you expect for a quality product. Not sure what the guy that rated one-star was concerned about on the warranty. There is a Money-back guarantee for 30 days after the purchase - product needs to be in its original condition and packaging, but there is also a limited one year warranty as described on the daskeyboard website under guarantee heading. The warranty period is based upon the shipping date of the purchased product to the buyer so you should be safe if there is a problem. |
| 3 | 44425 | 1 | 5 | 4 | 0.942 | 0.180 | 0.519 | 160 | This was a little gift from a friend who doesn't know a micro-card from a microscope. It was very nice of him, and a seemingly great idea. The holder does hold all of my 9 micro cards plus the adapter, BUT as with any micro card, when you get them out, they're so small that you can still drop them. The claim that you'll never lose them again is silly. PLUS there's no way to label the cards for content. The only "good" thing is that this doesn't take up more room than a credit card. Now you can lose all of your micro cards at one time.Every mico card that I have purchased (SanDisk) come with an adapter. There is a case that holds 16 micro-cards in their adapters, and is much more protective and better than this. It may be bigger, but at least I haven't misplaced it yet. |
| 4 | 44430 | 5 | 1 | 4 | -0.681 | 0.050 | -0.544 | 32 | Like it, but ended up using the leather one I got at the same time. No issues with either case as far as magnets causing a problem with hardware or installed apps. |
| 5 | 44676 | 5 | 1 | 4 | -0.790 | -0.001 | -0.587 | 75 | I have never had to deal with a dead laptop battery because of this sucker! Granted, it is about the same size as my laptop, it puts out enough power to double my already 8 hours of battery on my Acer netbook.It is solid as a rock, doesn't feel cheap at all since it is made of metal and after 6 months of use it still puts out and holds a steady charge. |
| 6 | 44759 | 5 | 1 | 4 | -0.643 | 0.187 | -0.055 | 173 | OK, I admit it... I forgot what the wood finish on my desk looked like as it had not seen daylight in months! Despite having a good sized desk at home, I still manage to put more junk on it than I should. So when I got this keyboard, I was at first scared that I would lose it under papers. It is so small! I have kinda thick hands, so I was worried that it would be painful to use this keyboard. NOPE! I am amazed how natural this keyboard feels. The buttons give good resistance when punched. And did I mention it was small? I went from a ergonomic keyboard to the wired Apple aluminum keyboard when they first came out. That cleared up a lot of room. And this has given even more room (to place more unneeded junk)! Seriously, my mouse pad is bigger than the keyboard. You'll be amazed at the simple beauty of it. I'm very happy with it and think you will be too! |
| 7 | 44784 | 5 | 1 | 4 | 0.954 | 0.553 | 0.659 | 113 | I am writing this review in response to one of the 1-star reviews that claims this product does not work with the iPhone 2.1 or 2.2 software updates. I purchased the product for my brother as a Christmas gift, and was a little worried that it would not work. My brother and I have been playing around with the battery all day today on our v2.2 iPhone 3Gs... and I can verify that it works PERFECTLY!We have not had any problems working with the battery, and it's nice that you can charge your iPhone even with the battery connected. Great product with a great price from Amazon! |
| 8 | 44797 | 1 | 5 | 4 | 0.872 | 0.064 | 0.008 | 250 | What a drag. After having my faithful Palm IIIe for seven or eight years, I finally dropped it and it died. I decided to replace it with the low-end Zire 21, no longer available through Amazon, but I saw it at Office Depot for sixty bucks. I checked out the reviews here AFTER I bought my Palm, and was disconcerted by the large number of negative ratings, but I thought I'd see how it worked for me.At first, I was perfectly happy with it -- I mainly use my Palm for alarms and phone numbers, and the Zire 21 handles those things well. Yeah, the screen is small without a backlight, but I could read it just fine.Unfortunately, even though I've had it just over a month, twice now I've turned it on and it's completely reset itself -- it's lost every bit of data I put on it and acts as if it's a brand-new Palm Pilot. I need to do a HotSync to restore my data, and then reset the time and date. So far this has only happened to me when I'm close to my computer, but if it ever happens when I'm on the road and need the data, I'll be very upset.I'm going to see if it's not too late to return this thing and get something better. Too bad that Palm has not lived up to it's earlier promise. |
| 9 | 44845 | 1 | 5 | 4 | 0.876 | 0.170 | 0.350 | 220 | I love android, I love the fact that I am able to customize my tablet, and do a whole lot of other cool features. The size was perfect for one hand. But too bad, my first N7, came with a dent on the side of the screen, which is hardly notice unless pinned to the light. Luckily I purchased from GameStop and was able to go in and exchange it for a second N7. It was great until last night, where I had left it to charge so I can bring it to school the next morning to work on a project to realize that it did not charge at all. So I came home and try to troubleshoot the problem but it looks like the port was defected and started to malfunction after seven days. So I went back to GameStop and got me a 3rd exchange, and when I got home I googled all the defects that is being encountered wit the N7 and found lots of problems, so I didn't want to take a gamble with the third one and exchanged it for my money back.It was too bad, I really had a great time with the tablet...well at least I'll be ready to buy one once all defects are taken care of. |
| 10 | 44934 | 1 | 5 | 4 | 0.814 | 0.192 | 0.632 | 72 | Wow. This adapter was awesome for a bit. Until I left it plugged in over night. It still works, but it got so hot that it melted over night. The plastic is all warped and the enclosure of the drive is also melted. If you buy this, you can only use it for a few hours at a time. Do not leave it running for days at a time like I did. |
| 11 | 44946 | 5 | 1 | 4 | -0.650 | 0.103 | 0.167 | 370 | The Good1. A no nonsense product...2. No funny software gimmicks....just plug and play3. Rigid protective casing with rubberised corner4. Stays well gripped where ever it is kept.5. Read and write data fast...no need to wait.6. No fans in the product so it is very silent,7. Drive warms up slightly on using but it is OK8. all my laptops detect this drive fast and wihout any glitches.9. really fast shipping, recieved it the next day.The BAD1. The disk rotates always when it is connected to computer...so plugging it always to a computer may be a bad idea.....connect it only when you need it for your drive's long life.2. The Rubber material at both ends are soft but they attracts lot of dust ..and within two days the product look like it is used for 1year.3. Big hassle to carry a power adapter and a USB cable along with this product...so bag is a must for those who wants to carry it around.4. product looks like a solid block (not a "beauty") ...( again i need only a storage space )TipsDrive comes FAT32 formatted... lot of Geeks are worried about the format and formatting to NTFS .....I decided to keep it as FAT32 because1. NTFS is windows specific ..will not work with Mac ...but FAT32 will ...2. Any time you can format your drive to NTFS from FAT32 if you want3. But you cannot go back to FAT32 from NTFS4. files in FAT32 needs more space than NTFS...(i still dont know how is that) ...but i have 1TB of storage space now so am not worried about that ..but may formatt it to NTFS when my drive have only 20% of space left ....5. Some say movies more than 4GB file size cannot be saved in FAT32 formats as 4GB is the max size....but this dont affect me because i am not a movie fan.6. So if you are using this drive not for movies ...FAT32 is the way..no need to format.WishThis product would be "excellent" if there was a carrying case which can fit the Drive, the charger and cables all together |
| 12 | 96020 | 5 | 1 | 4 | -0.913 | 0.135 | -0.138 | 86 | When I realized my AVR wouldn't pass digital audio to a second zone, I was pretty bummed. Then I found this device! I was able to pass my HDMI digital signal through this device to the AVR while also sending the audio to analog inputs on the AVR for the second zone. No problem with any delay or sync problems. No problem with audio quality. I can now push my music library from my HTPC into all the zones and I couldn't be happier. |
| 13 | 45111 | 1 | 5 | 4 | 0.717 | 0.039 | -0.169 | 202 | I bought this drive before any user reviews had been posted. I wish I had waited because, as all the other reviewers have said, this drive is just no good. I have a Seagate 200GB external drive and never had any problems with it. However, I needed an additional drive to save dvd files, just the type of file this drive does not like. For the first time in my ownership of Windows computers, I started to get a yellow triangle warning icon. In the event log, I too had a myriad of 50 and 51 write failures. The Seagate tech support technician told me the drive was defective and needed to be returned. Seagate only replaces defective drives with factory refurbished ones, not with new ones. Thank to Amazon, I was able to choose between getting a replacement (with a brand new drive) or a refund. After seeing that I was not alone in my horrible experience with this drive, I chose the refund and, after I receive my credit, will buy another 200GB drive. These seems to work just fine. If you need a lot of space, you are better off buying two Seagate 200s rather than the 400GB drive. |
| 14 | 45131 | 5 | 1 | 4 | -0.922 | 0.068 | 0.237 | 195 | I owe the maker of this screen protector a huge apology for my former review. Initially, I was very frustrated with the screen protector because I couldn't get a sticker off after installation on my Nano. I lived with that opaque sticker blocking part of my iPod Nano's screen for quite a while. Eventually, I decided that having no screen protection was preferable to having an obstructed view of the LCD. Imagine my chagrin when I realized the offending sticker so stubbornly affixed....was attached to what was intended to be a temporary top layer (A screen protector for the screen protector? Something to facilitate bubble-free installation?), which peeled off to reveal the ACTUAL iPod Nano 6th Gen screen protector in all its unblemished glory.If you're looking for an inexpensive and effective screen protector, look no further. Just PLEASE spare yourself future shame by being aware that the screen protector itself is sandwiched between two layers that BOTH require removal - one before installation in order to expose the surface that is applied to your Nano's screen, and the other to be taken off after the protector has been installed. |
| 15 | 44272 | 1 | 5 | 4 | 0.723 | 0.099 | 0.087 | 58 | I have a relatively short run (50'), but I live 46 miles away from the transmitters. I was getting about 50% on the TV signal meter for the poor stations, and in the upper 80's for the good ones. Add this device and got about 5 %less across the board. I had high hopes. Oh well; returned. |
| 16 | 45152 | 1 | 5 | 4 | 0.885 | 0.107 | 0.637 | 102 | I had this router for about six months. The first few months, it functioned ok, but within the last couple of months, the router would no longer connect after about 24 hours, requiring a reboot in order to connect to the internet. And even then, the speed was atrocious. Images on pages would not even load, java and flash based games would connect and then freeze.I have since replaced it with aCisco-Linksys E2000 Advanced Wireless-N Routerand, within the 24 hours since then, my internet browsing has dramatically increased.Definitely recommend staying away from Belkin and I now love Cisco. |
| 17 | 45158 | 1 | 5 | 4 | 0.822 | 0.022 | -0.249 | 57 | Yes it's cheap. That doesn't mean it's worth buying. I ordered two of these. One seems to work fine. The other only had one working earpiece. I had to send it back for a replacement (pain in the but), and I have to hope the replacement doesn't fail too. DAVE says "be forewarned." |
| 18 | 45269 | 1 | 5 | 4 | 0.700 | 0.293 | 0.619 | 56 | Not only does it not charge 100% ever, it also can't really charge anything cuz of the first reason. Bout the only thing this device is good for is the light which is 1 led, so any flashlight with 1+ led's will blow that away too.Don't buy, there are better out there. |
| 19 | 45279 | 1 | 5 | 4 | 0.654 | 0.128 | 0.355 | 98 | Easy to set up for my Panasonic Viera 32" set that didn't come with WiFi. So far it has worked without problems.Update: Instead of 5 stars, I have to change my rating to 1 star.After using the Belkin wireless link for a couple months it failed completely. I should have listened to the other Amazon reviewers about its poor reliability - so don't buy it if you are expecting something great for low cost. I have since replaced it with a refurbished Netgear WN3000RP Universal WiFi Range Extender which costs more but has better reviews. |
| 20 | 95989 | 1 | 5 | 4 | 0.926 | 0.331 | 0.694 | 92 | I guess i did not do enough research on this product because i have one with the old firmware which out of the box, does not work, you need to do a file modification on a ini file to get their own updater to work properly. Amazing how things like this get by QA, which seem's more like none was done...See:[...]And note on newegg here[...]then have fun even trying to register on their forums since they ask you a question i certainly don't know the answer to. |
| 21 | 45375 | 1 | 5 | 4 | 0.901 | 0.274 | 0.306 | 122 | This SSD generally gets good reviews, but there is a definite subset of users who experienced BSOD's on an irregular basis. Very difficult to diagnose. I only feel comfortable attributing the problem to this SSD because I replaced it with an Intel SSD (X25-M SSDSA2MH120G2K5)and have not had a single problem.I updated the firmware. I looked at every possible driver combination. Replacing this SSD with an Intel was a last-ditch effort to salvage a custom-built Intel i7/ASUS running WIN 7 Pro x64.My suggestion: make sure you investigate whether this SSD has caused problems for your computer, chipset or motherboard. The advantages of speed and a good price fade quickly when you get increasing problems. |
| 22 | 45386 | 1 | 5 | 4 | 0.910 | 0.103 | 0.560 | 749 | I purchased this receiver hoping I could integrate a variety of digital and analog sources into my cluster of receivers and amps that drive speakers in several rooms and outdoors. The TX-NR509 seemed to offer everything I needed: multiple HDMI inputs and a full complement of analog inputs, subwoofer pre-out, preamp out for surround rear speakers, the highly touted "zone2" output, network capability, and the added bonus capability of using an Android smartphone for remote control and streaming.I spent the better part of two days connecting all the cables, running the setup procedures, and becoming familiar with the receiver's capabilities and limitations. The TX-NR509 does have very sophisticated capability to optimize its output for your listening room. It even comes with a calibrated microphone that you use to support a series of tests that the "audissey" system runs to check your room. After completing the setup procedure I checked out audio and video performance with HDMI input from my satellite receiver--it performed beautifully. Then I connected the ethernet cable; the TX-NR509 immediately connected to my home network, recognized all the compatible devices (basically PCs with Windows Media Player). Using the Onkyo remote I was able to browse for media files and play them on the TX-NR509 just as easily as from any PC keyboard. Next I installed the Onkyo application for my Android phone. It installed in seconds and connected to the TX-NR509 immediately. A moment later I was streaming music to the receiver, controlling volume, and many other functions right from my DroidX. I turned on my outdoor speakers (powered by a secondary amplifier fed by the Onkyo back speaker pre-out), and walked outdoors with my Droid--it continued to function as a remote 50' away from the TX-NR509--a very nice capability for patio listening.As I continued to explore the behavior of my system I began to see the limitations of the TX-NR509. I will list them in order as I discovered them.1) the actual number of independent sources the receiver can handle is far smaller than the number of inputs terminals on the back of the device. There are four basic selector positions for source inputs, "BD/DVD", "VCR/DVR", "CBL/SAT", and "GAME". Each of these has an HDMI jack and a set of analog jacks. If you use both the HDMI input and the analog input for the same selector position, the analog input will be ignored. There are also four digital audio input jacks that similarly compete for selector positions. Bottom line, there are 12 possible audio inputs, but only four of them can be used.2) the TX-NR509 has no up-convert or down-convert capability for audio (digital audio cannot be converted to analog and vice versa). As a consequence, if your source is digital (say HDMI from satellite or internet radio) there is no analog audio signal, so the much ballyhooed "Zone2" output is mute and useless. How could Onkyo overlook such a vital capability in today's digital world? I thought I could overcome this limitation by using the analog audio output of my HDTV (which does have down-convert capability). This trick seemed to work as a means to feed audio from digital sources to my remote speaker systems until I discovered an even more critical flaw in the receiver's design.3) The last straw, the show-stopper for me was my discovery that enabling audio feed over HDMI cable from the TX-NR509 to the TV (an option in the setup menu) automatically disables the pre-amp outputs to the subwoofer and surround rear speakers. Together the latter two limitations prevent me from operating all speaker systems simultaneously at full capability, even though I have plenty of power to do so.Finally, while mulling over my options but still enjoying the wireless streaming capability from my Android to the Onkyo receiver the network card in the receiver apparantly failed completely. All attempts to connect to the network result in a stalled system with the message "initializing" ad nauseum.Tomorrow this device goes back in the box and back to Amazon. I will look for something better.The silver lining in this dark cloud for me it that I discovered that Onkyo's free app for the Android works very well as a streaming device and remote control for Windows Media Player on any networked PC. This opens up some interesting possiblilities. |
| 23 | 45402 | 1 | 5 | 4 | 0.725 | 0.509 | 0.519 | 27 | Right out of the box it had a static sound over everything! I could not take it! Instead I bought the Altec Lansing iMT228 and love it! |
| 24 | 45432 | 5 | 1 | 4 | -0.894 | -0.218 | -0.662 | 41 | I ordered the wrong size for a new lenses I had bought off eBay, I use these to protect the lens from stractches, but I ordered the wrong size this works as expected on other lenses I have, no problems here. |
| 25 | 45437 | 5 | 1 | 4 | 0.968 | 0.078 | 0.806 | 321 | I'm really surprised at the number of 1-star reviews on here and the complaining about the lack of flash. Let's face it -- flash is useful for some things, but as the dominant media plugin it is on its way out. I've found very little that actually needs flash and the sites that do use it, there is mostly an app that can accomplish the same thing but way better.Why not review it for what it is rather than something that you think it is not. Obviously many of these people do not own one. The common thread seems to be "I used a friends".I bought this about a week after it came out and I have used it every day since. I have hundreds of free and paid apps both for fun and work. I recently took it on vacation with my bluetooth keyboard and was able to leave all sorts of things behind. Watching movies, reading books, playing games on the flight -- perfect. After taking pictures on my iPhone I was able to wirelessly send them to my iPad where I could edit and enhance them with the dozens of image apps out there.Every day something new comes out that enhances the experience as developers have jumped on board in a frenzy. Gaming is a totally different experience as the size makes a big difference. Going back to gaming on a phone is just not possible.Battery life is amazingly long. Even with alot of use every day, I can get 2-4 days of use with no charging. It's well put together and slick -- hard to believe it is the first one.And yes, everyone will jump on the bandwagon and try to mimic it -- and if Flash is your one and only destiny that you can't live without, then by all means wait. Otherwise this one is the one. |
| 26 | 45443 | 5 | 1 | 4 | -0.718 | -0.033 | -0.222 | 18 | This is my third for my family.SOOOOOOOOO much beter than ipod.Only negative is lack of acessories. |
| 27 | 45533 | 1 | 5 | 4 | -0.247 | 0.127 | 0.051 | 198 | I bought this for <$6 so wasn't expecting much. I wanted a tripod to do some table top stop motion (just goofing around with the kids). This item performed below my very low expectations.Cons:1) The adhesive holding the plastic to the aluminum simply failed, item fell apart in my hands (and no I wasn't cranking on it)2) Soft plastic easily stripped such that joints no longer tighten making the unit completely useless3) Lightweight, cheap construction4) Bolt holding mini tripod in stripped out, no longer stays inPros:Provides an excellent object lesson on the difference between something "inexpensive" (i.e. a low priced item that functions) and "cheap" (i.e. a poorly manufactured piece of junk). This is it's only redeeming quality.It would cost more to ship back so I just burned $6 on an experiment. Save yourself time and trouble, this item is of zero value to anyone. What I cannot fathom are the 5 star reviews for this product. These represent either a different manufacturing process in the past (possible) or the company itself leaving favorable reviews. The fact that this item is on "clearance" pricing suggests the latter. |
| 28 | 44364 | 5 | 1 | 4 | -0.700 | 0.101 | -0.540 | 48 | I needed a mouse that keeps my wrist from getting sore and to prevent some other problems with my hand. It works much more smoothly than a previous trackball I have used. Some transition was necessary because I had not used a trackball in several years. No complaints. |
| 29 | 44263 | 1 | 5 | 4 | 0.982 | -0.035 | -0.012 | 180 | Wanting to watch Netflix on my TV, I gave this WD Media Player a try, and it was a major disappointment - I'm returning mine. Here's sample of its shortcomings.1) Despite its advertising, it does NOT show in 1080p. The same HD documentary from Netflix that is sharp and clear on my TV via Playstation3/Netflix is blurry and muddy via WD Media Player (which also uses HDMI).2) The WD Media Player advertising video explicitly states it can support wireless via USB-key style adapter. It turns out to be false advertising. WD Media Player does NOT support wireless - you must have wired connection.3) Its User Interface is very slow and often hangs - it seems to have a lot of bugs remaining to be fixed.4) Its remote control is a marvel of user-UNfriendly engineering, with tiny buttons that actually hurt your fingers.Using this device is an exercise in frustration. You'd be better off paying more for a PS3 for a full-featured, well-engineered media console with wireless and blu-ray support. |
| 30 | 43217 | 5 | 1 | 4 | -0.696 | -0.138 | -0.586 | 45 | I got this as a back up for my Canon G 15. I've not pushed the camera to its limits, but this should serve its purpose. Price was right. If it goes bad, I have to remind myself that is is "aftermarket." |
| 31 | 43735 | 5 | 1 | 4 | -0.809 | 0.019 | -0.739 | 111 | After reading the reviews and comparing the price of different cases, I decided to purchase this cover. I've used it for three days now and I have no issues with it. I was a bit concerned since most of the reviews were before the iPad Mini with retina display model came out, but have no fear, it fits the new mini model too. The only thing I don't like about the case so far is the flimsy stylus holder. I have a stylus, but I don't use it often so I don't carry it with me all the time. For the price you can't go wrong! |
| 32 | 96151 | 1 | 5 | 4 | 0.847 | -0.010 | 0.102 | 79 | OK I received this in 2.5 weeks from Hong Kong when i received it it was a very small package, so i figured it was too small for my laptop i had to move it so it could cool the RAM area at least, and it is too slim and thin seems very fragile and flexible. So therefore spend a little bit more money on buying something that ACTUALLY works For Bigger Laptops Like 14" 15" 17" ones. |
| 33 | 43387 | 5 | 1 | 4 | -0.727 | 0.104 | 0.153 | 104 | Very nice portable hard drive for the price. It is powered by the USB connection, so no need for power supply or more cables.I use it to store all my pictures and music collection on so I can access them easily by hooking this up to any of the 3 computers in the house. As far as transferring files, just drag and drop. Things don't get any easier than that. I am puzzled that others have complained that no directions come with this drive. Just plug it in to the USB port and treat it like another hard drive on your computer. |
| 34 | 43451 | 1 | 5 | 4 | 0.816 | 0.236 | 0.431 | 133 | Whoever says this thing is great has got to have no sense of audio quality. FM can sound pretty good if you're near a radio station's tower; I can be standing right next to this transmitter and still get scratchy, static-y audio when I know the audio source is battery-powered, strong, and clean from an mp3 player. Using the antenna extension didn't really help either.For $100+, I expected a higher quality of construction, but it is super-light cheap-feeling plastic for the whole thing. While this may be a plus for portability, even the mini-jack seemed like it had cheap construction (nickel-plating instead of gold-plated). Really disappointed with this, just wish I had the time to return it within the 30-day window. |
| 35 | 96144 | 1 | 5 | 4 | 0.991 | 0.137 | 0.208 | 577 | I'm sure this is a fine router once it's working but I guess my annoyance threshold is too low. I'm not an expert but not a complete novice either...I've set up and configured more wireless routers and other tech toys for myself and friends and relatives than I can remember. The installation experience with this item was a chore that looked like it could become a hobby and that's not what I was looking for.I opted to use the browser-based wizard setup. There's a little pamphlet included with the router that steps you through using it. Problem is that the instructions and screen shots and progression through the wizard in the pamphlet is different from what you experience in the browser (in my case, Chrome on a Win7 Home laptop from HP - nothing fancy). So when the browser's screen differs from what's in the pamphlet, you kind of have to guess. None of the guesses seemed difficult, but the wizard's responses were confusing. Here are a few examples (by no means all examples):The pamphlet says when you browse to the router's config page, you get a welcome page. You don't. You get prompted to enter the admin password. That's OK, I kept reading and found out there's no password by default.The welcome page appeared a couple of times as I went through the wizard (I went through the wizard a *lot* of times), but just as often didn't, and I don't recall it ever having exactly the options shown in the pamphlet.The pamphlet shows a page image where you enter the name and password for each of the 2.4Ghz and 5Ghz bands. I never saw that, not once.At the completion of the wizard I did get an encouraging prompt: "Click the save button to save your settings and reboot the router." Unfortunately, the only buttons on the page are Next, Back, Cancel and Connect. No Save button. So I clicked Connect as the next best thing, or so it seemed to me. Bang, back to the login page where I was prompted for the admin password again and the wizard started over.There were other issues, more than I want to take time to describe in detail, but briefly:* seemingly random jumps from anywhere in the wizard back to the login page, way too quickly after the last keystroke to be a timeout IMHO* some parameters are saved during a pass through the wizard pages; others are not (as I could see during my next pass through the wizard); others may or may not be - this is particularly interesting when your new admin password is saved during one pass and a different one (I was thinking "maybe it doesn't like special characters?") is not during a subsequent pass, so your most recent password is invalid and your previous one works* a given wizard page may or may not appear during a pass through the wizardThis is a Vine review so obviously I'm not going to return it but if it were something I'd paid for, it would be on the way back to the good people at Amazon in the morning. As I said at the outset, this is probably a fine piece of work but for me, it's not worth the effort vs what I have in place now. |
| 36 | 43528 | 1 | 5 | 4 | 0.701 | 0.314 | 0.623 | 48 | Bought this for the 4x 2.5" storage capacity. the bottom 2 slide in slots fit fine, but the top 2 snap in ones do not fit most 2.5" drives. Fits 3.5"s fine but not as nice as other options out there. |
| 37 | 43537 | 1 | 5 | 4 | 0.910 | -0.003 | 0.422 | 212 | I was a long time user of the wireless natural keyboard and it broke and I was looking for a replacement. I purchased this keyboard thinking it was going to be a good keyboard and boy was I wrong.First of all if you are familiar with the natural keyboards they are the ones that have the split keyboard and the keys in the center are at least an inch away from eachother in the center. the comfort keyboard is not split in the center its just curved and is supposed to feel the same but it doesnt. I typed about two emails and my hands were already hurting.The mouse is also bad. The buttons are very hard or stiff. I was having to press very hard to get the buttons to work. The scroll button was very hard as well. I had the scroll button programed to use as a back button and it hardly ever registered the function.I had to return this keyboard and instead purchased an upgraded version of my original keyboard which is now the microsoft wireless natural multimedia keyboard with matching wireless intellimouse explorer 2.0. I am so happy with this keyboard and my hands are fine now even after typing this long review. |
| 38 | 43630 | 1 | 5 | 4 | 0.762 | 0.298 | 0.288 | 64 | Started out skipping, then played through the first movie fine. After that it kept on skipping and wouldn't play the movies properly. I hooked up a dvd player to make sure it wasn't the tv or the cable. Sure enough, everything worked fine on the dvd player. This 3d bluray player must have been discontinued for a reason. It doesn't work. |
| 39 | 43653 | 5 | 1 | 4 | -0.806 | -0.833 | -0.609 | 73 | my mom drops everything she's ever owned (maybe even me? it would explain a lot). this thing is about all i can see that might give her ipad a chance of living beyond 3 months.it's really ugly and stupid looking, but it works fine.i also took the screen protector off, cause those things are terrible and you can't hit the edges of the screen with that thing on. |
| 40 | 96131 | 5 | 1 | 4 | -0.700 | -0.100 | -0.580 | 25 | Simple, compact and affordable Windows keyboard, no complaints. I like that I can use commonly used keyboard short cuts to raise or lower the volume |
| 41 | 43686 | 5 | 1 | 4 | -0.942 | 0.139 | -0.555 | 155 | I've been using this for about 1.5 years now, and I like it. The battery has yet to die and I've been able to intuit the instructions easily without needing to consult the manual constantly.Actually, I went to turn it on while I was typing up this review and it's dead. So there you go. About 1.5 years from 2 AAA batteries.It has a port for microphones, a port for earphones, and a usb port for downloading the audio files.I've been using it to record myself instructing new hires with a throat mic and it has worked quite well.My only complaints are:The USB port is not covered and gets dirt and lint in it quite easily.The "on" switch is a toggle, and it can get activated by accident if you aren't careful. I haven't had too much problem with this though. |
| 42 | 43691 | 1 | 5 | 4 | 0.966 | 0.497 | 0.889 | 132 | Hi, this will be brief.I own a 7D and bought one of these LCD protectors and it shattered after about 1 month. And I take care to protect my camera quite well.I replaced with a Giottos SP8302L Aegis Multi-Coted Screen Protector (fits the 7D perfectly) and what a huge improvement. The Giottos has a twelve (12) layer multi-coating which really improves contrast and glare and best of all it is manufactured from SCHOTT optical grade glass. The best there is. It has a transmission factor of 98%. You just can't beat that. It is literally invisible. The Giottos has been on my 7D and also my 5D Mark II for over a year and a half and it still looks brand new. It is worth every penny. [...] |
| 43 | 96126 | 5 | 1 | 4 | -0.859 | 0.134 | -0.068 | 223 | I haven't gotten much use out of it other than some fiddling around. The crank is really easy to use and the device fits well in my hand (I have small hands so was concerned about it being too large to crank.) Its very light and has a rubberized coating on the outside, making it much nicer to hold than the typical hard plastic. The weather presets worked great and it has good reception. But I expected this as I live in a major city. I was shocked at how nice the speaker is in it! I expected something tinny and sub-par (as its a tiny unit) but it sounds great!My concern lies at the power switch for the lantern function. I have to mash rather [...] the button to turn it on and there's no click to tell me when its on. I'm worried about breaking the switch. I think this is because if the button is depressed somewhat, the light will turn on but not stay on. However, I still feel there should be a click of some sort to avoid the button being pressed too hard.I haven't gotten the chance to test the cell phone charging unit as I don't have the cable. It has to be ordered from the company/another company. |
| 44 | 96122 | 1 | 5 | 4 | 0.856 | -0.046 | 0.248 | 77 | Item arrived today... The very first time I tried to use it, to my surprise and amazement, the hot shoe connector section literally fell apart when I gently and carefully slid the locking lever into place!!! This exposed the internal wiring. The quality of materials and workmanship on this item is poor. It gets returned tomorrow. I will be highly unlikely to buy this brand again - I wouldn't trust it not to damage my valued cameras. |
| 45 | 44245 | 5 | 1 | 4 | -0.936 | 0.083 | -0.314 | 168 | This hardshell case covered in nylon does the job of protecting a bluetooth headset, compacting into a container small enough to easily fit a shirt or pants pocket. One would be hard pressed to fit a recharging cord in this case along with the headset, but for thr latter alone, it is more than sufficient. The protection it provides alone more than justifies the purchase, keeping the contents safe from both damage and disfigurement, thus preventing a repeat purchase of another headset due to loss or breakage. Aside from headsets, this case will protect anything small enouth to fit and of value ( gold chains, rings, ) from loss and damage while in a pocket or any other tight enclosure that might contain potentially marring and abrasive ma-terial. Due to this case alone, the jawbone earpeice contained therein will be the last headset purchased due to loss or damage while in a coat, shirt, or pants-pocket, and for this reason alone earns a ' 10 ', or 5 full stars. |
| 46 | 43782 | 5 | 1 | 4 | -0.818 | -0.071 | -0.259 | 95 | OK here's the thing----this isn't just way cool to have but a necessity! I can attest to that, especially after my computer got infected with a nasty and I had to have it basically undergo surgery. Had it not been for the fact I had everything on this hard drive.....well let's just say BECAUSE I had everything on it I still have my sanity! (and my computer) I swear by this to the point I'm considering buying an extra; just to store my pictures on for truly 'safe-keeping'. |
| 47 | 43795 | 5 | 1 | 4 | -0.916 | 0.105 | -0.604 | 98 | Just received these and put them in my new Mac Mini. I have the newest Mac Mini with Lion pre-installed and no optical drive. Installation took less than a minute and they work just fine. System Profiler shows the full amount (8GB). Sure it's been just 1 day but they are working as they're supposed to. If they fail or have problems I'll come back here to let everyone know. Just can't beat the $53.00 price tag with $10.00 rebate.UPDATE: 4/10/12 - Memory still working well! No problems whatsoever. |
| 48 | 43805 | 5 | 1 | 4 | -0.763 | 0.110 | -0.343 | 60 | I am using this (3 weeks) with a USB3 port and a Linksys ac modem and I am getting fantastic results. No more problems with Netflex. It`s worth the investment.Initially I used this adapter with a Linksys N dual band router and it also fixed the problems with netflex. I just want to avoid problems in the future. |
| 49 | 43880 | 1 | 5 | 4 | 0.957 | 0.067 | 0.336 | 374 | Not a bad looking display, and it was an easy job to set up. All worked fine using it with my XBox until I tried Netflix. I'd get black screen dropouts, the Netflix app would suddenly close, or claim I was signed out of XBL. Or the TV would claim "No signal!" or "Unsupported". Looking online, it seems like this happens to lots of folks. I also had the same intermittent problems watching TV via Windows Media Center on the XBox.I ended up returning this TV because of these constant HDCP hiccups. Sometimes it would recover by itself in a few seconds. Sometimes selecting another input source and going back fixed it. Sometimes I needed to power cycle the TV, and sometimes I needed to power cycle both the TV and XBox.The best part of this whole experience is that because I spent time researching the problem and trying many different solutions (new cables, software/firmware updates, even swapping out the XBox for a different hardware rev) I went over Amazon's 30-day return window by less than 24 hours. Now they refuse to take it back and give me a refund. Be careful! If you start to see problems, send it back ASAP! Amazon is pretty ruthless with their return window. This is the last time I'll try fixing a purchase instead of sending it back immediately.This TV is a great deal for a 26", ONLY if you don't require HDCP. For any HDMI source (or DVI requiring HDCP) you should definitely find a different display.I bought this one to replace a Samsung that had a less annoying HDCP bug, so probably avoid Samsung as well as Sharp. The replacement for this Sharp is a Panasonic Viera TC-L32U3 32-Inch 1080p LCD (ASIN: B004M8SC92). It has an IPS lcd panel which looks a million times better, is bigger, and was only about $50 more. No HDCP problems with it so far at all. Unfortunately, it looks like Amazon stopped selling this model. The other 32" Panasonic available is only 720p, so be careful!UPDATE: 2 months on the Panasonic, and not a single problem. And it's a gorgeous looking picture! Much MUCH happier. |
--- End of Worst Predictions Table for VADER --- --- Confidence vs. Performance Analysis for VADER ---
| Confidence Level | Num Reviews | Accuracy | Close Acc (+/-1S) | MAE | |
|---|---|---|---|---|---|
| 0 | V.Low (0-.25) | 14236 | 0.237 | 0.654 | 1.257 |
| 1 | Low (.25-.5) | 17800 | 0.417 | 0.772 | 0.943 |
| 2 | Med (.5-.75) | 31608 | 0.558 | 0.903 | 0.584 |
| 3 | High (.75-.9) | 20854 | 0.732 | 0.946 | 0.347 |
| 4 | V.High (.9-1) | 1051 | 0.883 | 0.987 | 0.135 |
------------------------------------------------------
2025-06-21 00:30:21 - INFO - evaluate_model - Evaluation for VADER complete. Evaluation for VADER complete. 2025-06-21 00:30:21 - INFO - evaluate_models - Evaluating model: TextBlob 2025-06-21 00:30:21 - INFO - evaluate_model - Evaluating model: TextBlob (column: textblob_stars)... Evaluating model: TextBlob... --- TextBlob Performance Metrics ---
| Metric | Value | |
|---|---|---|
| 0 | Accuracy (Exact) | 0.1785 |
| 1 | Accuracy (+/-1 Star) | 0.5804 |
| 2 | MAE | 1.2666 |
| 3 | RMSE | 1.4878 |
| 4 | F1 Score (Macro) | 0.1566 |
| 5 | F1 Score (Weighted) | 0.1687 |
| 6 | F1 Score (+/-1 Star) | 0.7345 |
| 7 | Precision (Macro) | 0.2925 |
| 8 | Recall (Macro) | 0.2547 |
| 9 | Cohen's Kappa | 0.0281 |
| 10 | Sample Size | 99,934 |
------------------------------------
2025-06-21 00:30:22 - INFO - save_worst_predictions_to_csv - Worst predictions CSV for TextBlob saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/worst_predictions_analysis/textblob_worst_predictions.csv --- Top 50 Worst Predictions for Model: TextBlob (Error >= 1) ---
| index | true_rating | predicted_rating | error | vader_compound | textblob_polarity | custom_score | word_count | text_preview | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 56153 | 1 | 5 | 4 | 0.812 | 0.142 | 0.178 | 356 | The good:- Looks nice- Top fits wellThe bad:- The bottom simply doesn't fit. I've checked, double checked (and triple checked), my MacBook Air is a model A1466, which this is suppose to support. The case is just a millimeter too small; no matter how hard I push, I cannot get the bottom to snap on. In scouring reviews, it looks like a LOT of other people have this problem, I don't think it is just a defect. For anyone interested, the closest I can get to getting the bottom on - try sliding it on from the front of the computer, it's the only way to get the sides even(ish).- Cheap feet; covered in some kind of enamel that was half gone by the time my order arrived, and is now flaking off all over my couch.- Large ugly "Kuzy" logo embossed on the top, conveniently photoshopped out of the pictures on Amazon; I already know it's a Kuzy (I bought the darn thing), do you really need to remind me every minute? Could you at least remind me on the _bottom_ of the case? You're making my beautiful computer look like garbage...The other:- Kuzy sent an automated email asking about how I liked the product; they said "if there is any reason that you wouldn't rate this as a 5-star experience, please let us know", and provided a link. Since I would not rate this a 5 star experience, I clicked the link, but it just takes me to an Amazon page where I can return my order. That's not helpful Kuzy; I want the bottom to fit, and I want the pictures to match the product; I don't want to contact Amazon, I want to contact _you_. I feel like they're not that interested in making a decent product, if they can't get their contact info right...Conclusion:I guess I'll use the top, which works okay despite the misrepresented ugly Kuzy logo. The bottom's going in the garbage. Won't be buying one of these in the future. |
| 1 | 74740 | 1 | 5 | 4 | -0.972 | 0.083 | -0.653 | 861 | I purchased two of these drives, one for a working drive and one for a backup. For the first month or so I was very happy with them and would have given them 5 stars, but then the troubles began. The first drive began hanging my computer and going into read only mode. At first it passed diagnostics, but the problem got worse over time. Once it started failing diagnostics, I was able to return it for exchange under warranty. Seagate's warranty process works, but first time through, it is almost impossible to use. I had the same problem others did with their site telling me it could not identify the drive even through I was entering the numbers on the drive that matched those their own testing software supplied. They need to fix this. I had to resort to opening a ticket (could never reach them on chat or by phone). Their support staff gave me numbers that the web site could use for the return. Drive arrived yesterday, seems to work ok. Jury is still out though. Now the second drive is malfunctioning. When I went to restore my files from the 'good' backup drive, which seemed to work well throughout all of this, it would hang after copying files for more than an hour. It did it repeatedly. I finally resorted to copying my backup files over manually in small chunks that would copy in a few minutes. I then tried to back-up again and the system hung after about 100 gb. So I reformated the drive and tried again, same problem. It appears the drive is 'going to sleep' when it shouldn't and hanging the system. I've read a lot of complaints about this. I have tried downloading the new software that Seagate support suggests, but this software is almost useless. It does not allow you to change the sleep behavior of the drive, it only lets you test it and control the status lights. Big waste of time there. All-in-all, if you want trouble free drives, don't buy this one. This drive has too many gremlins to have to deal with. It has an enticing price, but storage is too important to risk for a low price. As for Seagate's support, if you don't mind waiting 24 hours between asking a question and getting an answer, the go ahead and try using it. The most useful thing I got from them was an "I'm sorry your drive is bad, use these numbers to return it under warranty". I will return this one too so the company can pay the cost of producing defective drives. I would recommend everyone having problems with these drives return them under warranty, don't just give up. Unless seagate has to eat the cost of high returns, they won't fix the problems.UPDATE: 11/12/2012Here is the latest update on this problem: As I said in my review, I purchased two of these drives, one for a working drive for my iTunes library and one for the time-machine backup. After one drive failed and was replaced under warranty, I continued to have corrupt drive issues. They would work together fine for several days and then I would notice corruption starting when I ran verify disk in disk manager. I would fix the problems but eventually one of the drives would become un-repairable and I would have to rebuild it. In a fit of frustration, I unplugged one of the drives and left the other running. Low and behold, the corruption problems stopped. Apparently, my two drives do not play well together, even though they are twins. I tested this by alternating the drives and this appears to be the case. The solution to the problem was to only use one of these drives at a time with my Mac and to use a different manufacture's drive as my time-machine backup drive. Been running this way since late June without a problem. Unfortunately, Seagate support was unable to help me diagnose this problem as I was never able to connect with a support representative directly by using the link they suggested. Support was always off-line when I tried, e-mail was the only option and with a two-day turn around time it was not useful. One more data point: I have both USB and FireWire interfaces for these drives, and the problem doesn't appear to be related to the interface used, simply to the firmware of the drive. Also, I've re-tasked the second drive on a different computer and it has been working fine since June as well. Net-net: Don't use more than one of these drives at a time, one or both will become corrupted. Unfortunateliy, my overall experience with these drives and Seagate's support is still one-star. I am happy I was able to use both drives and not waste my money, but since I wasn't able to use them together on the same computer as I wanted, I can't change my rating. |
| 2 | 84571 | 1 | 5 | 4 | 0.913 | 0.067 | 0.114 | 372 | I have been reading up on and have purchased a few items from both the hand crank items and other types of rechargers, for just light or radio/light/phone recharger. Reading many reviews I've come to two conclusions:(1) there are a lot of fraudulent 5-star reviews (in fact if you pay close attention there are clues to some of them) and(2) there are serious quality control issues of these many items assembled in China.Making a choice in the category of this item was particularly difficult, and I had my concerns about this one. After trying it out and rereading other reviews I am convinced that they are all equally poor quality. I got mine for only (only?) $15, which was almost cheap enough not to return, given that it is a great flashlight... and nothing more than that. Great if you recharge it in the wall or with your computer, since the hand crank is very hard to turn, and as noted in the instructions, less than two revolutions/second cranking will not charge it. Yikes! Try to maintain that velocity with that tiny crank (actual size of this item is really small) with all of the resistance. As for its various functions:(1) once fully charged with AC I connected to my iPhone, already with 50% charge. In less that an hour it was up to 52%, and in less than a second hour it had dropped to 48% and the Ambient Weather device was fully discharged.(2) Weather radio: maybe I don't understand how that works, but of the 7 stations, in two different attempts I was able each time to receive one only (a different one each time) and it went out of reception quickly and could not be recovered.(3) am/fm radio. This worked better. I got one am station with terrible static and 4 FM stations, two quite clear. That's all?(4) solar charging. I didn't bother to test it, as all of these small units I read about have poor solar charging, at best, after charging all day in a sun we don't have in December, you get a few minutes of light or radio. ! |
| 3 | 83265 | 5 | 1 | 4 | 0.283 | 0.083 | 0.101 | 68 | I originally did a one star thumping of these guys, which I'd like to reverse completely. Didn't matter what was wrong, they were plainly going to make things right, no matter what. They contacted me after they saw the review, responding several times within a matter of hours to any question. Quick and clean resolution. Lesser sites should take note...I'll order again with confidence. |
| 4 | 48819 | 1 | 5 | 4 | 0.986 | -0.039 | -0.212 | 352 | This is going to be tricky. It's not really a 1 star, but its not a 5 star either (nor is it a 3 or 4). For how pretty something is there should be a rating and how user-friendly should be another. Since there isn't - 1 star for me not able to figure out how to play a whole movie as an .iso.The device is well made, shiny (though not everything shiny is made of gold) and it worked when I connected to my Plasma. But, I bought it for 1 thing and 1 thing only and that was to play .iso files. I couldn't get it (right out of the box) to play them. I even sent an email to the seller, who replied back in a very timely manner, that yes, the device can play standard .iso files. ok, I get it, it should work, but how - they failed to mention that and the instructional book is very small in size and printed so light and small type, that I had to use a magnifier I use for small parts, to read it. Gee, couldn't we have included a small dvd with the instructional manual on .pdf or at least a url where it can be viewed?It couldn't play my .iso files (made with the standard .iso) but what it would do is break them apart into various .vob files and let me play those 1 at time, sort of defeating the purpose of a whole movie.I don't need a player for all the other file formats the device can play, just .iso.I hate to say it, but I will, this little box is smarter than me.Now, if someone writes that they have no trouble playing standard .iso files, please clue me in on how you did it? I'm not a techie type and if I can't plug it in and play, I don't want it. I don't have a cell phone because of this.Amazon has been really helpful. Thank you for that. |
| 5 | 27751 | 1 | 5 | 4 | 0.844 | 0.089 | 0.121 | 98 | Although the power came on, the unit did not go to the setup menu as it was supposed to.It was also completely unable to read 2 usb drives. (I tested both in my computer and in my Sony digital frame and they worked perfectly).I was very put off by the large card that almost jumps out at you when you open the box. It essentially begs for a 5 star rating on Amazon and promises the chance to win another digital frame if you follow through.I shall not be getting "Nix" products again. |
| 6 | 65397 | 5 | 1 | 4 | -0.585 | -0.700 | -0.665 | 22 | Shielded cable is defiantly the way to go. Almost doubled my transfer rate on my home network. (I had really bad cables). |
| 7 | 48832 | 5 | 1 | 4 | 0.991 | 0.172 | 0.455 | 333 | After seeing lots of cheesy, poorly designed low-end products from Sony over the last 20 years, I was completely taken by surprise by this quality of this thing. It is an extremely well designed pocket radio, both from the radio frequency (RF) engineering side and the ergonomic and construction side.This thing is bigger than some other pocket radios but probably about the smallest you want to make a radio that is still easy to operate.In my testing, the FM reception with this small, portable Sony beat out some very high-end audiophile tuners that use outside FM antennas along with an FM antenna preamp! It's THAT good at reception! Likewise, the AM reception is very, very good. Sony did an amazing job with the chips they designed for this radio.As far as sound quality, it sounds balanced to me. Not overly bright and easy to listen to for hours. The included headphones, while not the highest quality, are perfectly suitable for radio use and have a light clamping force for a high comfort level. My only complaint with this pocket radio would be that Sony needs to add a small push button to temporarily back-light the display.Yeah, you can listen to music and talk programs by using an MP3 player but radio still has its charms. If you're looking for an extremely well engineered portable radio that sounds great and doesn't cost a lot of money, this is it. Great job, Sony!By the way, if you check out a lot of the 1-star reviewers, you'll see most of them have only reviewed ONE Amazon product.... this one. I suspect some of Sony competitors are "seeding" negative reviews of this thing to pull down the ratings. Don't trust short reviews from people who have only reviewed one item at Amazon. It's a cheap marketing ploy used by competitors who can't compete in the marketplace without resorting to sleazy tactics. |
| 8 | 66940 | 5 | 1 | 4 | 0.593 | -0.500 | 0.228 | 30 | Needed to add wireless ability on a budget. These worked immediately and you have seen the price if your reading this. You can not go wrong with one of these. |
| 9 | 76286 | 5 | 1 | 4 | 0.996 | 0.187 | 0.596 | 882 | I was scared to buy this seeing the one star reviews but I figured at the price ($79 on Amazon) I could give it away if I was not happy with it. I know a lot of poor people who would be very appreciative to get anything for free. I have now owned 6 digital cameras. The two being the ones that I used the most were a Canon 2 mp ultra compact one I bought about 8 years ago, and a Samsung 8 mp compact one I bought 4 years ago (Digimax i85 http://www.amazon.com/Samsung-Digimax-Digital-Camera-Optical/dp/B000VQ8MB2/ref=sr_1_4?ie=UTF8&qid=1324849121&sr=8-4). The other 3 cameras I bought were too bulky and I gave them away to family pretty quickly.My general experience with digital cameras after 8 years of using them is they don't last forever. And usually when they break I'm angry that I spent $250 to $400 on it. So with that in my mind I wanted one under $150 with an optical zoom, compact size, and HD video (at least 720p). My Samsung broke on me while I was home on vacation (I work overseas and don't see my family much in person). I bought the Samsung based on a recommendation from the techy comedy news show called "Attack Of The Show" and they loved it. Well I hated that camera but I had a good amount invested in it so I kept it. I'm happy now that it broke because now I have a camera I really enjoy, this Kodak.The Kodak was much under $150 it was even cheaper then $100, so that was a easy pick. On top of it having an optical zoom, and HD 720p video, it has a rechargeable battery, a great bonus as I hate throw away batteries if I can avoid that. So I took the plunge and got it a week ago. I know I am in love with this camera because despite it being so inexpensive it's very very fast! This camera takes pictures the instant you click the shutter, I have never had a digital camera as fast as this one. The pictures so far have also been very sharp using the smart photo setting (everything auto). I also just tried out the video (720p) and it looks very sharp compared to my low resolution cameras before. Kodak provides a simple book with it and online a pdf book thats more detailed. They also have video instructions online which I thought were cool to watch and a help since I like to only turn on a camera and start shooting assuming it can do everything on its own.The camera can do editing and has instant sharing to your Facebook page but I am not interested in those features as I will crop the photos and such using my laptop, but they are there. And I can pop out the memory card and download the photos myself, but it's on there in case you like that. I really like that it has a film start button and a separate photo shoot button so you don't have to switch modes, that is the first camera that I've owned to do that, very easy to operate. The auto settings seem very good, they are called smart photo, and the camera really seems to be great in auto. I have not played with the sports modes or such but may as I gain experience with it. It seems to be doing a great job just on its own so I may never ever mess with the manual controls!Overall for a $79 camera I rate it a 5 out of 5, I may buy another one and keep it until this one breaks so that down the road I'll know I have another one of these around, I'm that happy with it. This is my first Kodak product and I always considered them low end because of the price and old Instamatic camera days, but hey, I'm a Kodak customer now, GOOD JOB!BTW I read when from anothjer review here, I was buying this, that it only took up to a 4gb card, the manual says it takes up to 32gb card so I'm bummed that I bought a smaller card then I wanted, so keep that in mind. Also one of the one star reviews talked about their daughters camera freezing up, the firmware upgrade on Kodak's site says that is there for a freezing issue, so that may have fixed it before it died. The other one star review was about one purchased on Ebay so possibly it was used and abused, who knows. Sometimes you get varying tolerances between the same model so maybe they just got lemons, maybe peoples expectations are too high for a under $100 camera, maybe people are trolls and are trying to kill Kodak from selling their products, who knows, I know I really like mine and wanted to share that with the Amazon community.5 out of 5, great camera for the price and really a great camera for something as compact as it is! |
| 10 | 675 | 5 | 1 | 4 | 0.103 | 0.090 | 0.338 | 284 | I originally purchased this card well over a year ago when the price was about three times what it is now. Even with the price difference, I'm not dissapointed in this product. I'm getting ready to buy a second card because I find myself taking enough pictures lately to need the extra memory, and I will be choosing Viking again.I originally heard about this media card after reading the good reviews on dpreviw.com. I have been using this card almost daily for probably two years now and have only had one problem (which I suspect was a camera glitch, and not the card's fault). After looking at the reviews for the 128MB, 512MB and 1GIG card here on amazon, I'm shocked at all the one-star reviews this product is getting. I love this card. I am wondering if the people having problems with this card really know what they are doing. As with any media card, it's always a good idea to have your camera format it, and to re-format it from time to time.I've been using this card religiously not only for holding pictures from my 4.0 Megapixel (Nikon) camera but also for hauling big files to and from my office computer and desktop system. I've used it in a variety of usb card readers, pcmcia card readers and the various photoprinters with card readers to move all sorts of files big and small, without any problem.I find this card to be reliable, and at the current price w/rebate, a complete steal. I plan on getting purchasing a 512MB card today and taking advantage of this ongoing rebate. |
| 11 | 23726 | 5 | 1 | 4 | -0.402 | -0.500 | -0.221 | 28 | Bought these after a lightening strike here took out some electronics. Unfortunately, I have no way of knowing if I'm protected or not till another strike happens. |
| 12 | 58413 | 1 | 5 | 4 | -0.766 | -0.073 | -0.394 | 149 | UPDATE July 31, 2012:My initial review last year was five stars - the router installed easily and connected with all my devices. Then yesterday, after about ten months, it just quit - dead. Tried all the usual things with no luck. I looked on the Cisco website for help and from what I read, it sounded like I would have to PAY them for warranty support! What?! I came here to Amazon and read the horror stories from other people who had the misfortune to buy this router, and who wasted their time trying to jump through the Cisco hoops. The "one-year limited warranty" has the emphasis on the "limited" part. You do indeed have to pay them to even talk to you, and you can't send the router back unless you do this.Well, Cisco-Linksys, we are finished. There will be no more Cisco products here. |
| 13 | 60505 | 5 | 1 | 4 | 0.544 | 0.097 | 0.163 | 313 | EDIT: I've changed this from one star to five.First, the maps update quickly. I don't know why the first update was so difficult. However, other updates have been quick.I called customer service and they talked me though my issues of the error message. I had to erase the old map before installing the new map.TomTom's customer service was frustrating at first. The first help person gave me a routine that didn't work and cut me off. The second one was courteous and knowledgeable (read, what they told me to do worked). The wait for help was tolerable... so I was pleasantly surprised.After I got comfortable with the device... we've had fun with various voices. I'm partial to the Cylon commander (grin).Purchased at local RadioShack. I brought this home and started it up... all was well.I connected it to the computer and downloaded TomTom HOME 2.7 and updated the map (a 10 HOUR) update.Then I got the first error message saying I did not have enough space on the device. Apparently updated maps require an SD slot (does not have).I then tried to enter Lifetime Maps subscription. Another error code. (XML is not valid) I'm guessing it is not compatible with Windows Vista.Now when I turn it on a message comes up "No maps found!" TomTom HOME tells me there is a map on the device. And the "anti-theft" symbol comes up when I go to turn it off...In TomTom HOME I clicked "Read the manual for my XL" it takes me to the UK TomTom support website where, surprise surprise, there is NO manual. I input the error codes, another suprise: "no results found."Now I connect to the computer and a silly screen comes up with a picture of the TomTom plugged in... |
| 14 | 41393 | 1 | 5 | 4 | -0.472 | 0.800 | 0.285 | 37 | I wasn't happy with the quality of this when I opened the box; seems with pulling threads and leather that did not match. It doesn't matter how inexpensive an item is if it is junk. |
| 15 | 4701 | 1 | 5 | 4 | 0.971 | 0.126 | 0.817 | 342 | Lots of 5 star reviews so I decided to try one. Got it, plugged it in, powered on T.V. and P.S.P. and immediately noticed the screen was not the color it should have been. There was a short in my wire that cut out the red in the picture thus making the picture look blue green. Figured people should know there's always that chance of getting a faulty product. Yes I made sure the connections were in the right ports. Yes I made sure it wasn't my PSP. It was definitely the cable. A shame too. I had high hopes for this.Also you should know that games will be displayed smaller than the full TV screen with big black borders around the edge. This is the psp not the cable. The only settings that can fix this are on some T.V.s to enlarge the picture unless you buy a converter instead.Heres a product link that can make you psp display full screen on an HDTV:Pyle Home PSPHD42 PSP to HDMI Converter with Upscaling for Portable Play StationYou may be able to get this cable to work with a standard T.V. (assuming its not a faulty product) by setting your connected display settings on your psp to interlace instead of progressive. But your standard T.V. has to support component connections. And they must be in the right inputs. Most only support A/V connections or worse. Component has 3 video & 2 audio inputs (green, blue, red, & red, white) whereas A/V only has 1 video input and 2 Audio(yellow, & red, white). All 3 video inputs on a component cable have to be in the right sockets on the T.V. or your video will not display properly. Naturally if you leave the audio cables out using either connection you won't be able to hear.This review is up so people know there's always "that chance"Customer service was great. very helpful and fast. Thank you Century Accessory & Amazon. |
| 16 | 76303 | 5 | 1 | 4 | -0.969 | 0.132 | -0.161 | 380 | I already have a nice pair of headphones with better sound quality than these, but they are the big ones that cover up half your head. If you take those to the gym or go out for a run with them, not only do you look ridiculous, but the sweat just pools up and soaks them. So I was in the market for some earbuds, but I knew from experience that earbuds keep falling out and are a royal pain. These are the perfect design, and once you fit them to your head, they won't fall out, and they're so light that you barely even notice them. In short, they are perfect.I did read the below reviews about how these headphones don't last very long before I bought them. There are two possibilities: one is that one of the internal mechanisms just falls apart, in which case there is nothing to be done. The more likely possibility is that repeated tugging of the wire eventually loosens it from the delicate structure of the headphone. So I simply tied the wire around the headphone and taped it in such a way that even if you tug at the wire, there is no pressure and no possibility of tugging the wire loose from the earbud. I'll let you know how long these headphones last - if they don't last long, then there must be a mechanical problem with these and I'd suggest not buying them.UPDATE: I loved these headphones, they really had the perfect design. I had read some earlier reviews about them not lasting. My theory was that constant tugging of the wires would eventually pull them loose from the internal speaker, so to prevent that I taped the wires down on the first day. Despite this, they lasted 3 months until the sound in the left earbud started going on and off, and then finally died, proving that it is simply a cheap internal mechanism that was the problem, not any sort of wear and tear. There are enough similar cases as mine that should justify Sony discontinuing this product and coming out with a model that has some decent durability. If I could change my rating I would give it 1 star. |
| 17 | 68367 | 1 | 5 | 4 | 0.440 | 0.700 | 0.622 | 13 | I intend to replace them with some speakers that shound good quite soon. |
| 18 | 97130 | 5 | 1 | 4 | 0.581 | 0.087 | 0.692 | 148 | I have always used Kensington laptop locks and have always been impressed with the quality. Unlike less expensive products, a Kensington lasts forever, never breaks, and in general is easy to use. This time I had a little difficulty figuring out how to attach the lock post to the computer lock slot, but once installed it worked fine. And no more keys to lose!1 Year UpdateDO NOT BUY! Read all the 1 star reviews. I wish I had. Attached to my laptop for one year. I now have to remove and it WILL NOT UNLOCK!!! I KNOW the code is correct, it is one I always use. Entered it correctly the first time. NO luck! I could pay a locksmith but not worth it. I could cut the table and be stuck with a lock sticking out. All I can say is thanks a lot Kensington --- NOT! |
| 19 | 7974 | 5 | 1 | 4 | 0.430 | -0.625 | 0.004 | 24 | Got this for my mother so that she can download books onto her Kindle from the computer. You can't go wrong with Belkin! |
| 20 | 97907 | 1 | 5 | 4 | 0.128 | 0.344 | 0.140 | 100 | If this product fits your needs, then it probably rates 5 stars. It may be a great accessory, but my experience was not so great. First of all, just the process of setting up the passwords was more involved than the roboform system that I have been using. The biggest problem of all, however, was the fact that it can be used with only Internet Explorer. I never saw any mention of that until I had the packaging torn open. I use Firefox, almost exclusively, so this item now sits here doing nothing at all. Fortunately, its cost was low. |
| 21 | 84919 | 1 | 5 | 4 | -0.130 | 0.700 | 0.451 | 31 | when plugging in this power supply/adapter/charger a spark shot from the plug. does not work. good thing I did not have it plugged into the laptop when this sparked. |
| 22 | 27769 | 5 | 1 | 4 | 0.602 | -0.500 | 0.081 | 28 | For this price, you really can't go wrong. I also use Tech Armor for my Nexus 7 tablet, and it has served me well on both devices. |
| 23 | 21530 | 5 | 1 | 4 | 0.996 | 0.153 | 0.758 | 312 | The case is small and cute like my kindle. The purple and black look nice. Case is made pretty well and the price is good. It was more expensive than some prices people are saying they paid but even having to pay shipping it was less than $20. Fintie shipped pretty fast it came by USPS in 2 days from Ohio to California. I've paid for shipping in other things that look forever to go out and seemed to stay in limbo somewhere.This is the second Fintie case I have purchased. I got the leopard print one for my Goddaughter's kindle Fire HD last year. That one was also nice and it seems to be holding up well. She loves leopard print and was extremely happy with it. I git her sister a "ProCase" brand in her favorite color. She loves hers too but it smelled so chemically. Since I ordered both together, I'm not sure if the Fintie smelled too but I aired both out before giving it to them. I think it was just the other one that smelled tho this Fintie I got does not stink.Besides the style of case I LOVE the big selection in colors and patterns, especially for the price.This is still a great case, no issue with breaking spine (yet) i saw a one star review because there was only one magnet. Not sure if its a defect or not but it doesn't need 2 magnets. The case is small because the Paperwhite is small The cover stays closed very well. I love the magnet feature because it shuts off kindle when you close cover. When you open it, just have to swipe screen to unlock from "special offers" screen.The price is amazing compared to other cases that don't even have the auto sleep/wake feature. |
| 24 | 33576 | 1 | 5 | 4 | -0.592 | 0.242 | 0.100 | 46 | These are pure torture. I own the e5c and love them 5 stars - but these need to be redesigned! There is no excause for the level of pain and poor fit. There is another manufacture that makes a similar product and it is soft and comfortable. |
| 25 | 92295 | 5 | 1 | 4 | -0.981 | 0.072 | -0.780 | 487 | This is the most expensive mouse I ever bought and I got this mouse as an "experiment" in ergonomics. I have various aches and pains in my back and jaw which I believe are in part due to a poor ergonomic workspace; so have been investing in different equipment to see if it had an affect.I chose this mouse because it could easily switch between left and right hand usage. I wanted to experiment with using a left handed mouse, but since I am primarily right handed, I wasn't sure I could stick with it. I liked the fact that this mouse could switch between right and left hand easily.it took a week or so to get used to the mouse. Others have spoken about trouble clicking the button. I do have some problems where the button click does not seem to register, but they are rare situations. most of the time the mouse works as I would expect a mouse too.It took a month or so before I moved to this mouse full time and I don't remember the last time I reached over for my old mouse.A few random things to note:1) Using this mouse, with my left hand had no affect, positive or negative, on back or jaw pain as far as I can tell.2) Using this mouse--with my left hand--I seem to drag my left arm across the desk more often than not. Sometimes this causes minor irritation. I do not remember this ever happening on my right arm; but maybe the whole thing is one big callous.3) Due to the design of the mouse; I do not think it would work well with a mouse pad.I am planning to pick up another one of these for my travel bag.6/6/2014 Update:I still use this mouse daily. I wanted to update this review to make note of a few things.Others have mentioned problems pressing the buttons, even I did above. I adjust and don't even remember having problems.The problems I had with dragging the arm across the desk are no more.I actually do use this with a mouse pad every day. despite my initial reservations about doing so.However, the Mouse has started to "Disconnect" from USB and reconnect multiple times a day. It has worked fine for about a year before the problem started to exhibit. I have no idea why this is; but I'd guess that the constant use has created a loose connection in the wire.I'm knocking off 1 star from my review for that last part.6/19/2014 Update:Customer service offered to replace my failing mouse even though I was out of warranty; so I gave them back the one star I docked from them. I'm now using the latest model without any issues. |
| 26 | 34173 | 5 | 1 | 4 | 0.586 | -0.500 | 0.076 | 23 | I've been using this flash drive for years and it hasn't failed me yet. It works well for it's price |
| 27 | 22735 | 5 | 1 | 4 | -0.172 | -0.500 | -0.152 | 22 | They do the job for the price, all these cables have to pass minimum standards so why pay for the expensive ones. |
| 28 | 60763 | 5 | 1 | 4 | 0.988 | 0.184 | 0.393 | 289 | After returning Fire TV and Chrome Cast, See one star reviews by me on Amazon, this one is a keeper! Setup is easer and faster than the other two. The remote headphone jack is fantastic, the TV mutes as expected when head phone are plugged in. Remote is not IR it's radio, the remote works across rooms and thru walls. I was able to enter a credit card and sign in and later remove all Credit Card info it and have it kid safe, not worrying about bogus charges. Tons of channels lots of tech stuff, Nasa, MIT, TED, and enough free TV shows on Vimeo and You Tube to stay free for a long long time. Im cheap and I can pop for the one time $99! Channels can be deleted w/o a PIN no options there, but I have it set for a PIN to add channels, again keeping it family friendly. Even with the low speed DSL the 720p mode looks good. I called Roku tech support to ask about the credit card info before i bought it, they assure me I could remove anything on file. He was right hold time was 5 minutes. It did not come with a HDMI cable! It's hard to fault this design. Menus are very well designed, easy to navigate. The YouTube menu is a bit smaller and cluttered than others, maybe that google not Roku! What would make it better, and I know they wont do this but remove the tiles I don't use like Netflix and Amazon all the extra $$ stuff, or at least dim them out. Add a HDMI cable in the box. Still its a six star device. Nice Job Roku!!! |
| 29 | 57390 | 1 | 5 | 4 | 0.904 | 0.667 | 0.755 | 76 | I bought this cable to connect my Macbook Air to an HDMI monitor using the Thunderbolt port. Even with an Apple technician on the phone, the best I could get on the monitor was colored snow. On the advice of the technician I purchased a Thunderbolt to HDMI dongle and an HDMI cable at my local Radio Shack. Works perfectly. Could have saved myself a couple of hours if I had done that to begin with. |
| 30 | 95731 | 1 | 5 | 4 | -0.520 | 0.216 | -0.313 | 269 | I bought this camera primarily for the GPS. The first problem is GPS battery usage. The instructions warn to keep the GPS off until you are ready to use it in order to conserve battery life. Turning GPS off and on requires wading through several pages of menus. There is no direct GPS access. The next problem it takes about 15-30 minutes to acquire a fix. Most of the time I end up shooting the pictures rather than waiting for the GPS fix. This defeats the primary reason for my buying this camera.There doesn't appear to be any way to change the degree minute second format to decimal degrees format.I have a smart phone with GPS. The GPS doesn't seem to affect battery life on my phone, why should it affect the battery life on my camera? I have Garmin Forerunner, it can acquire a GPS fix in 1/10 the time, shouldn't the camera be able to do the same?Another thing I find puzzling is the rechargeable battery. Why do I have to remove it from the camera and place it in a battery charger in order to recharge it? I have a smart phone, two Gamins, an E Tablet, and a laptop. I don't have to remove the battery to recharge their batteries, why should I have to remove the battery from the camera to recharge it? The battery charger is just one more thing to keep up with.If the GPS and battery worked the way I expected them to, I would have given this camera 5 stars. |
| 31 | 92019 | 1 | 5 | 4 | 0.981 | 0.193 | 0.190 | 285 | You learn some math. 5 stars because It taught me another lesson .in life and mathAmazon should not sell this item it's worse than a cheap router at Walmart.I followed the steps that they said firmware supposed to make it better. No did notFirst you do notice that you only get two cheap ass cables will not support gigabit.also you can't even ajust the frequency but the page is there to make you think you can. you can't even go through one wall and make it 200 feet .I got better range with every Router rather than this router even the cheapest router would have farther range.Thanks after further reading on the reviews before I got my device I knew what to expectthe really funny thing is it probably really does 10,000 ft.if you really did the math 10,000 ft. is only 100 ft.The regular router gives you 30000 Feet squared which is 300 feetGood thing they give you the range Wi-Fi guaranteed because It sure didn't get no extended .I'm glad they didn't charge me the $21 for shipping and he happened to get delayed and they refund my money .because I'm sending the damn thing back .It really looks cheap and is very light. it also gets really warm.I do not understand couldn't they have made a decent product and try to make some money and prople happy . And this cheesy marketing 10000 square feet wow who is going really going to do the math on that one .God very clever. They could've at least made decent though and made some money after tricking people. |
| 32 | 27919 | 5 | 1 | 4 | 0.509 | 0.165 | 0.403 | 214 | I have bought this router after reading all reviews, mostly postive about this product. Having use it for about a month now, I can say that this one performs amzingly well. I have set up wireless 2.4 Ghz for guest network, 5Ghz for movie streaming through Netflix, wire printer with USB and wireless printer, and USB storage that can be shared over internet. All work perfect with lightning fast wireless speed, particularly with 5Ghz network, which I used mostly for video streaming. It has been one month now, there is no single drop in wireless signal, which is always detected in my 2 story house, and now in my detached garage about 150 feet away.The only short-sighted from Asus is about the limitation nvram size. The rt-n66u comes with only 32 Kb nvram, which is somewhat limited for third party software flash. At this moment, Asus is working on new update, and recently they put up the firmware update and pulled it down couple of days later, and I assume that it did not fix the nvram issue.In all, I am satisfied with the performance of this wireless router. I would not ding one star less for the firmware update problem. I think Asus will eventually fix it well. |
| 33 | 89803 | 5 | 1 | 4 | 0.883 | 0.356 | 0.090 | 96 | Son needed a better gaming computer. He is thoroughly happy with this one. I compleatly agree with "Fake name real review". We looked at a lot of other computers and even thought of building one, we could not find the parts this comes with and build it cheaper. His friends were impressed with his "cheap $600 computer". We had no problems right out of the box. I don't know where all the 1 star reviews came from (they are all recent and we bought it at the end of July), but we are very happy. |
| 34 | 50699 | 1 | 5 | 4 | 0.996 | 0.175 | 0.834 | 568 | I'm very much a novice when it comes to video. I have a 3 year-old Sony mini-DV Handycam (DCR-TRV22). I wanted to upgrade to something better. I looked at numerous 3-chip standard definition cameras, and I rented one (Sony DCR-VX2100) locally to try out for a weekend. The video with the 3-chip was clearly better than the 1-chip, but I wasn't convinced it was worth about $[...] for the model I'd selected (Panasonic AG-DVX100B). I stumbled across the HC7 in Videomaker magazine and became interested. The reviews here on Amazon sounded promising and it was $[...] cheaper!There is a beautiful 60-foot waterfall near my house. When the HC7 first arrived, I charged the battery and headed out. The video quality was ABSOLUTELY GORGEOUS! It was manifold better than the 3-chip camcorder I'd rented. You could easily make out the texture of the moss growing on rocks near the bottom of the falls, probably over 100 feet from my vantage point. I could count the blades of grass growing around the edge. Stunning! I brought it to Pizza Hut the following night (to film my pizza, of course!) and you could count the anise seeds in the Italian sausage. Weird, but cool! I displayed the video on my MacBook Pro and on a 65" DLP HDTV and I was majorly impressed. The TV displayed that the input was 1080i and it looked the part, too... sweet!I took a few still photos with the HC7. I was comtemplating purchasing a Nikon D200, but the quality of these stills is probably good enough for me. I'm not in any way saying the HC7's stills are comparable in quality to that of the D200... I'm just saying the HC7 stills are nice enough for my needs (for now).I've read elsewhere that the low light performance of the HC7 is not good. I tried it in low light and it doesn't seem any worse than the DCR-VX2100 or the DCR-TRV22 and maybe a little better.One of the features that appealed to me was an accessory mentioned by an earlier reviewer, the SPK-HCB marine pack. This allows you to use the camcorder while snorkeling or just around the pool or beach without worrying about water damage. The SPK-HCB (about $[...]) doesn't list the HC7 as a compatible model, but the $[...] (and otherwise nearly identical) SPK-HCC did, so I purchased the latter. I have not tried this out yet, but it looks to be well-made and will likely work adequately.The audio quality is lackluster, like all consumer camcorders. To add insult to injury, the Sony external camcorder microphone I purchased on Amazon 2 weeks ago for the DCR-TRV22 won't work with the HC7. The "intelligent" shoe, found on the DCR-TRV22, has been replaced by the "active interface" shoe, found on the HC7. The dang thing won't fit this shoe... $[...] down the drain! This destroys the value of Sony's accessories! A two-week-old mic is worthless! Because of this, I give the HDR-HC7 a 1-star rating. Advice to Sony: quit raking your loyal customers over the coals, and we'll do a better job of promoting YOUR products!CONCLUSION: 5-star camcorder by a 1-star consumer-unfriendly corporate giant |
| 35 | 15964 | 1 | 5 | 4 | 0.421 | 0.600 | 0.430 | 22 | Looks nice, quite slim. Does not work as advertised, needs formatting for the 360, and DOES NOT meet performance requirements.Expensive Junk. |
| 36 | 20060 | 1 | 5 | 4 | 0.665 | 0.767 | 0.853 | 62 | It worked great and I was very happy with it. 20 days after I received it the electronic part of the unit (with the LED screen, as opposed to the cigarette lighter wire) has separated into top and bottom pieces. It still seems to be working but even when I get the two pieces to stick together, it falls apart soon after. |
| 37 | 18449 | 1 | 5 | 4 | 0.738 | 0.109 | 0.146 | 186 | When I first picked this up from Walmart I thought nice, this is great to take a long and put in my laptop bag for use on the run.it wasn't too long after that I noticed how cheap the construction was. Not the shell but the actual prongs that you hook the card into. They are made with very cheap metal, so in other words, those little pins inside bend easily...I spend half my time taking a toothpick to move them back in place.And the pins aren't bending because of user error or lack of being careful. I've never had a problem plugging in my card to any other readers, until I came to this one.Don't buy it. If you can't even plug in the card without worrying that the pins won't align and you end up fixing and bending them back in place so that your card can fit and plug in, why waste your money.If those pins were solid and rigid like they are supposed to be, this would have been 5 stars. |
| 38 | 85461 | 5 | 1 | 4 | -0.509 | -1.000 | -0.553 | 21 | I use this memory card in the monitor for our video surveillance cameras. The 32GB holds an awful lot of footage! |
| 39 | 8071 | 5 | 1 | 4 | 0.999 | 0.158 | 0.472 | 910 | In short, this is a great camera in a very small package that produces good results! I wanted a small portable camera with HD video capabilities that I could take with me when I did not want to lug around my DSLR (Canon 40D + lenses) and this little gem fits the bill perfectly.This camera replaced aCanon PowerShot SD780IS (Black)that I returned due to constant audio noise (hum) while recording video. Rather than risk getting another defective SD780IS with the same issue (many seem to report hearing the noise/hum), I decided to upgrade to the latestCanon PowerShot SD1400IS (Black). I am happy to report that this camera has no such issue with audio when video is being recorded.The picture quality of the SD780IS and SD1400IS is roughly the same and on par with what one should expect from such a small ultra-portable camera. Going from 12MP to 14MP is a wash as the sensor is the same size and results are very similar. I have posted several shots of flowers under the "customer images" section of theCanon PowerShot SD1400IS 14.1 MP (Black)and also uploaded several 100% crops of each image so pixel peepers can see the detail that this camera produces.Let me be clear, anyone that thinks this camera is going to produce anything close to the quality of a DSLR is fooling himself or herself. There is no way that this small of a package (3.6 x 0.7 x 2.2 inches ; 4.6 ounces) can produce the same image quality as a DSLR. If image quality if paramount, one would be better off considering theCanon PowerShot S90 10MP Digital Camera, but you will lose the HD video capability, some portability and spend more money. When I want extreme quality, I simply take my Canon 40D + lenses with me and shoot in RAW.The Auto mode is smart and I think there is more happening behind the scenes than one would expect. If one takes the same image (same ISO settings, lighting, shutter etc.) in Auto and then in Program mode, the results are similar, but I think the Auto mode wins nearly every time. I have no way to confirm this, but the Auto mode seems to have different compression algorithms depending on the subject and can produce a less noisy image at higher ISO than Program mode can. Inside shots are good but I wish I could set an ISO range to force the Auto mode not to exceed 400 ISO.Tip: If you are getting blurry images, remember that the minimum focal length is much less 5cm when at 28mm and significantly more 50cm when zoomed in to 112mm. So, if you are trying to get the camera close to your subject, be sure to gauge your zoom/subject distances properly otherwise your subject will be out of focus. Perhaps this would have helped the 1 star reviewer.Final items of note:1. There is no viewfinder and quite honestly, the small viewfinder on the SD780IS was useless so I do not miss having one. The LCD is bright and works great even on bright days.2. There is no optical zoom while recording video, only digital zoom, so one has to decide on a zoom length before starting to record. This is a non-issue for me as many people overuse zoom and usually would have been better off just recording a static shot rather than making me dizzy with shaky-cam + zooming at the same time.Bottom line: This is a fantastic pocket camera capable of decent images with HD video recording as a bonus. It is small enough that it will get taken everywhere enabling capturing of all those special moments. I would highly recommend it to anyone, so long as they realize the limitations inherent to ultra compact cameras. I hope this is review is helpful.Update: I forgot to mention that one should be sure to get no less than a "Class 4" SD card (Class 6 would be even better) to prevent any video recording issues (missed frames etc.)Update 2: Still loving this camera after six weeks of use, I particularly like HD video capabilities and use it all the time. The .mov video files make for easy import into Apple iMovie for editing and produces great results. At a recent event, I was able to get some very nice pictures in low light without using a flash in AUTO mode. I was really surprised at the quality achieved in such hard shooting conditions. Best results are had by not zooming too much as there is less light available (f-stop changes when zoomed). If you are noticing blurry shots, try to zoom less and get closer to your subject.Update 3: I just ran across the recent announcement of theCanon PowerShot SD4000IS (Black) 10MP, it was just released and the list price is currently more than the SD1400IS but the new 10MP back-illuminated CMOS sensor looks very promising for decreasing the noise that is common in sub-compact cameras. The SD4000IS also has HD video capabilities with the addition of stereo sound and can be zoomed while recording video along with a new "Super Slow Motion" video function and a faster f/2.0 lens. It will be interesting to see what users think of this new camera in the coming months. I hope this update is helpful. |
| 40 | 65336 | 5 | 1 | 4 | 0.963 | 0.063 | 0.343 | 571 | Unboxing========The Bose IE2s come in frustration-guaranteed packaging. Why do the manufactures assume the average consumer is an expert at shrink-wrap packaging? Not even an open-here arrow! This is not smart from the manufacturer perspective, you don't want consumers to be frustrated right before they begin using your product for the first time! You don't want them to start with Strike 1! I was tempted to take one-star away for the packaging, but unpacking is a one-time thing and it is not germane to the function of this product, so I decided against it.What's Included===============The headphones come with the medium StayHear pre-installed and two small bags with Small and Large StayHears. The package also includes three original style tips (small, medium, large), each one in its own little bagIt comes with a Bose-branded 5"x3" carrying case, about 1 inch thick. You can also repuprose this case, especially if you are a Bose fan :) Correction: there are no pockets in the carrying case.There is a small user guide (three pages), each in English, French and Spanish, but tiny font. Also, the warranty, a promo for Quiet Comfort Bose headphones, and a probably unnecessary foldout piece of paper that tells you in multiple languages to read the owner's guide first!This contains lots of small parts, so be cautious if you have small kids.Using them==========The StayHear tips may look strange at first, but they actually worked just fine once I got used to them. I haven't had any discomfort, even when using them for a few hours in a row. They are also comfortable because they don't go deep like in-ear earphones. You don't have to get a "seal" with these. I was actually pleasantly surprised at how well they worked.The earphones cord has a couple of adjustable features - a slider that lets you control where the left and right cables split, and a clip so you can clip the headphone cord to clothing. The slider goes up to ten inches away from the point where the two earphone heads meet, so you cannot split them all the way down to the line-in cable.I have no complaints about the sound. It is plenty good for me, but I am not an audiophile. I mostly use them with a couple of mp3 players (Fuze, Walkman) listening to music - at audio levels where I can still hear my thoughts :) I have not used them while running/exercising so I can't tell you how they did, but when working or doing stuff around the house, I don't think they ever fell off. (I am assuming not everyone has the same ears so this is perhaps a your mileage may vary situation)I have not used the first generation of these earphones so I cannot compare them.So the question is, considering the century-mark price, do you get these or look elsewhere? If you asked me before using these, I would have said, "Bose hype, look elsewhere". Now, especially if you are looking for earphones that can stay on, and not fill your ear canal, I say, "take them into consideration". Having said that, I have only used a limited number of the hundreds of earphones out there, so I can't give you a grand scheme of things opinion. |
| 41 | 20593 | 5 | 1 | 4 | 0.803 | -0.625 | 0.266 | 22 | can't go wrong with a nokia phone. with windows 8, so yeah! multi-tasking. touch screen, i think $125 is satisfactory. |
| 42 | 42654 | 5 | 1 | 4 | 0.768 | 0.128 | 0.456 | 126 | I installed this product on a 2004 Pontiac Grand am. The installation was easy, I did not need the directions and just compared the factory radio mounting points when deciding how to mount the new radio.I was considering knocking off one star because there is a very small gap on the right side, probably 1 mm, and nobody but me will probably notice it. I tried unscrewing the radio and sliding it to the right as much as possible and still a slight gap. It is not that big of a deal but something you might want to consider.All things considered I would still recommend this product. You can not beat the price. Probably can't install an after market radio with out it. |
| 43 | 84080 | 1 | 5 | 4 | 0.735 | 0.179 | 0.406 | 64 | Not simple to use. Not "one click away". No instructions included either printed or plug-and-play on drive. Toshiba was thoughtful enough to include a 19 page booklet in several languages with legal info to cover their read ends. I returned it same day that I received it. Amazon shipping as always was quick and safe. 5 stars for Amazon. 0 for Toshiba. |
| 44 | 74772 | 5 | 1 | 4 | 0.846 | -0.500 | 0.154 | 43 | I am not one of those tech nerds that can 'see' electrostatic interference in my picture. Heck I just graduated into Hi-def this year. But I wanted something that would protect my expensive gear. I have peace of mind with this protector. |
| 45 | 25958 | 5 | 1 | 4 | 0.996 | 0.222 | 0.651 | 371 | Well the wait is over as at last my case finally arrived! I considered many alternatives while waiting but held out for the Amazon version & I'm glad I did. No other case I've seen online is as thin and compact as this but also provides an EXCELLENT LED bulb which distributes light evenly across the entire page. The first thing you notice when taking it out of its "barely there" packaging is how incredibly light and thin it is. This case is as slim as you can get, yet still provides excellent protection for your Kindle. The leather is smooth & slightly glossy but seems to be of good quality but if it changes I will reflect that in an updated review.It couldn't be easier to install just slightly push you Kindle into the cover and your done. It's very snug & will not fall out once it's in. It's a little more work to remove it but basically just slightly bend the lower right corner down & push the Kindle up to remove. The light is great and has almost ZERO glare at night and finally Amazon put it in the sweet spot to provide nice even light across the page. It really looks great at night!! When your done just close the cover and it pushes the light down for you, no need to touch it again once it's raised up.The front flap also folds nicely behind the back for one handed reading & once your finished it easily closes right back up & lays flat just as if it were new. I know many customers are posting 1 star reviews because of the long wait & I don't know why the cases are shipping so late but trust me, it's worth the wait. The cost is a different issue & I debated taking away a star for the price as for what it is, the case should be closer to the $40 mark but I decided to review the actual product & leave the buyer to decide whether or not it's worth the cost. I doubt many people will find a better case that provides such great functionality with such a slim & light profile. |
| 46 | 96484 | 5 | 1 | 4 | -0.695 | -0.500 | -0.308 | 33 | It works for my PS3, TV, stereo receiver, and cable box. 1080p all the way! 30 bucks at bestbuy for one...60 for one made for a playstation...90 for a monster?!? wtf |
| 47 | 93603 | 1 | 5 | 4 | 0.980 | 0.069 | 0.255 | 460 | Just a few days ago I was shopping around on this site for camera bags. I considered a number of bags, but kept coming back to this one. It was pretty attractive to me, and promised a combination of desirable features that none of the other bags on the Amazon really offer: a name brand, a good price, manufacturer's warranty, Prime eligible. (That last was particularly attractive to me because I needed the bag on pretty short notice, for a photography class in Hoboken this Saturday. Now that I have to return it, and don't even have the option of exchanging it--not that I'd want to--I guess I'll have to do without.)I read the reviews, as you're doing now--not all of them, of course, as there are upwards of 250. I saw that the vast majority were five-star reviews, but there were too many one- and two-star reviews to ignore altogether. I read the negative reviews and saw people complain about cheap zippers over and over.The positive reviews, however, often said things like "I don't know what those people are talking about, the zipper is fine." I decided to trust the majority.My reward? The box arrived, I eagerly opened it, saw a brand-new bag in a plastic slipcover. I pulled the cover off, went to open the bag--and the very first thing I noticed was that the zipper was already off the track! Not just off the track, but badly mangled. On a brand-new bag that I hadn't even touched!!Trying to decide whether to exchange it for another (though it turns out I never had that option anyway, since I'm returning via Amazon and they only offer refunds on third-party items) I briefly experimented with it, seeing if it would serve my purposes otherwise. It's very small, smaller than described. It holds my Nikon D3100 and 18/55 mm lens, but barely, so it certainly won't do for anyone using just about any equipment at all beyond the absolute minimum. I was given to understand that the mesh netting along the back would accomodate the camera's very slim and small user's guide, but guess what? It didn't fit.And on top of all that, as I was repackaging it for return shipping I noticed that it doesn't even have the promised shoulder strap.Really, what were they thinking? How did they screw up this badly? This has got to be the most unprofessional third party seller on Amazon. Did anyone give it the most cursory examination before they shipped it? Do they even know what quality control is? Pathetic, completely and utterly pathetic. |
| 48 | 67737 | 5 | 1 | 4 | 0.988 | 0.111 | 0.292 | 786 | I waited a few weeks after purchasing this TV to write a review, because I had read of a few other owners reporting problems with the model. I wanted to give my unit a chance to exhibit any of these issues before writing my review.So let's talk about the potential issues first:1. Light bleeding. On the user submitted images you'll see some with a dark screen and white circles around the edges. The is supposed light bleeding which might effect the image as you view programming. I have those light circles on my model ... when I first turn it on and the screen is completely dark. Once programming starts to play, there is no noticeable effect of the picture.2. Hardware going bad soon after purchase. Didn't happen with mine. We've been using it now for about two months without a single issue.3. Dead pixels. Hasn't happened here.4. Problems with the image during motion. The only issue I've had regarding this is something like a football in motion on a live 3D broadcast. We haven't noticed any problem like this when watching normal TV programming or movies, either 2D or 3D.5. Magic Remote. This is the only area that I sort of agree with complaints, although I wouldn't say I have a complaint here. I really only used it extensively for settings, as everything else I do is pretty much controlled thru other devices. So in normal use I turn this TV on or off, and that happens with my universal remote. So I'm not at home moving the cursor around with the Magic Remote, and I never will be. There is a minor irritation in that any movement of the remote causes the cursor to appear on the TV. So if it gets jostled I have to pick it up and push a button to get rid of the cursor. This is a quibble that really should have no bearing on anyone's decision between this TV and a different one.In short, everything reported by the one star reviewers ... and I read them all before deciding on this model ... didn't happen with our set.Now let's talk about what I like:1. We've had a Sony rear projection 57" 1080i set for about 10 years. Moving to the picture on this set seems to be as much of a positive step as moving to HD in the first place with that Sony. The picture on this set is truly spectacular. It is brighter, with richer colors, and the details show up better even when the image source isn't 1080p.2. Passive 3D. I did a lot of research on this before deciding on Passive vs. Active 3D. In the end, we hardly every "just watch TV" (or even a movie). Both my wife and I have our computers right by our easy chairs in our den. I'm often working or doing light research while watching TV or a movie or a sporting event. Using the passive 3D glasses means that I can look away from the screen and do other things without taking them off. So that's the route I took. The glasses are less expensive than the Active glasses, and we are quite happy with the 3D effect we get from this set.3. Wifi. The built in Wifi connected easily to my network, and has no trouble finding all the pictures, videos, and music that I have shared through the media server.4. While a couple of people seemed to find the Setup menus confusing, I had no problem with them. There are "macro" settings for image display options. However, you can also select an incredible amount of detail for how your picture is displayed. I did some research online and found some "TV Experts" with this set who have published their lists of detailed settings for this model. Using those as a guideline, I replicated their setting on this unit, and am very impressed with the result.5. The physical set up was quite easy. The TV isn't too heavy for me to handle by myself. I simply propped it up, put the stand together, screwed the stand onto the TV, and carried it to its permanent home in our den. It was an easy process and only took me a few minutes.I'll sum it up:We've experienced no problems whatsoever to give me any concerns about having bought this 55" 7600. What I bought it for ... 3D and a better picture ... it delivers, and at a level far beyond my expectations prior to purchase.Highly recommended. |
| 49 | 13812 | 5 | 1 | 4 | 0.340 | -0.500 | -0.198 | 20 | Needed a 10 foot HDMI cable, and this one has performed excellently. No issue with connectivity or signal loss. Recommended. |
--- End of Worst Predictions Table for TextBlob --- --- Confidence vs. Performance Analysis for TextBlob ---
| Confidence Level | Num Reviews | Accuracy | Close Acc (+/-1S) | MAE | |
|---|---|---|---|---|---|
| 0 | V.Low (0-.25) | 14236 | 0.157 | 0.481 | 1.401 |
| 1 | Low (.25-.5) | 17800 | 0.180 | 0.555 | 1.290 |
| 2 | Med (.5-.75) | 31608 | 0.169 | 0.601 | 1.244 |
| 3 | High (.75-.9) | 20854 | 0.183 | 0.672 | 1.151 |
| 4 | V.High (.9-1) | 1051 | 0.762 | 0.988 | 0.255 |
------------------------------------------------------
2025-06-21 00:30:22 - INFO - evaluate_model - Evaluation for TextBlob complete. Evaluation for TextBlob complete. 2025-06-21 00:30:22 - INFO - evaluate_models - Evaluating model: Feature-Based 2025-06-21 00:30:22 - INFO - evaluate_model - Evaluating model: Feature-Based (column: feature_based_stars)... Evaluating model: Feature-Based... --- Feature-Based Performance Metrics ---
| Metric | Value | |
|---|---|---|
| 0 | Accuracy (Exact) | 0.5327 |
| 1 | Accuracy (+/-1 Star) | 0.8107 |
| 2 | MAE | 0.7590 |
| 3 | RMSE | 1.2622 |
| 4 | F1 Score (Macro) | 0.3204 |
| 5 | F1 Score (Weighted) | 0.5183 |
| 6 | F1 Score (+/-1 Star) | 0.8954 |
| 7 | Precision (Macro) | 0.3298 |
| 8 | Recall (Macro) | 0.3188 |
| 9 | Cohen's Kappa | 0.1696 |
| 10 | Sample Size | 99,934 |
------------------------------------
2025-06-21 00:30:22 - INFO - save_worst_predictions_to_csv - Worst predictions CSV for Feature-Based saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/worst_predictions_analysis/feature_based_worst_predictions.csv --- Top 50 Worst Predictions for Model: Feature-Based (Error >= 1) ---
| index | true_rating | predicted_rating | error | vader_compound | textblob_polarity | custom_score | word_count | text_preview | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 27119 | 1 | 5 | 4 | 0.811 | -0.141 | 0.215 | 49 | It seems to charge super slowly, like I would have to leave it plugged in for 2 days in order to get my galaxy tab half a charge. Not Cool!SCRATCH THAT! I've been looking at this for a few days and this is NOT CHARGING AT ALL!!! |
| 1 | 71158 | 1 | 5 | 4 | 0.729 | 0.055 | 0.230 | 263 | It's a shame that I didn't get the chance to use the Roku 3. I was excited to use it after reading some of the reviews. Although it seemed to lack playback of a variety of different file types, I thought I would give it a try. Before I bought the item, I read that I was going to have to create an account and add payment info, but if I contact customer service, I could get around that. I can't think of another piece of home electronics that I own that I had to create an account for and add payment info for. My gripe is that I have no intention of using pay services with the Roku, and I shouldn't have to create an account at all and add payment info. So my Roku arrives, I get to the step where I need to create and account and I logon to my computer to do that. I tried to open a chat session with customer service and waited 40 minutes while I did other things. As soon as it is my turn, the service rep closes the chat session. So I called them on the phone and waited 30 minutes and gave up on them. I tried to start a chat with service the next day and waited over an hour and the same thing happened - Ray, the customer service guy closed my session immediately. Thanks, buddy! It just shouldn't be this hard to hook something up and start streaming some movies from my media center. |
| 2 | 30668 | 5 | 1 | 4 | -0.542 | -0.350 | -0.583 | 24 | IT SERVES THE PURPOSE OF CONNECTING TWO DIFFERENTLY CONFIGURED CABLES. IT IS TOO BAD WE CAN'T ALL GET TOGETHER AND SIMPLIFY THINGS, EH? |
| 3 | 30676 | 1 | 5 | 4 | -0.676 | -0.045 | -0.012 | 248 | PROS:- The trim looks OK. (That's all that matters, right?)CONS:- Very poorly written, hard to see/read manual.- Screws are too long and scratch the bottom of the stereo unit (albeit at non-visible area)Tried to use it for Honda Odyssey 2002, replacing factory radio with Pioneer FH-X700BT.The manual is poorly written. Fonts are tiny and diagrams are tiny. I ended up cutting wrong tabs, making it impossible to use the side (ISO?) panels to screw the unit to the car frame. When I realized this, I ordered the same one from Amazon, grudgingly. Fortunately, 5 minute later, I tried re-using the side bracket from the old factory radio and it did fit, although with some difficulty. I immediately cancel the order.All in all, I ended up using only the front trim. Also I used the rear-bottom bracket that held the front trim in place (I may not even need that one). But the tiny screws that join the two was too long and scratched the audio unit, albeit at an invisible area.It looked good once all the work was done.What's the lesson? Look very carefully the shape of the original factory radio's bracket and cut out only those tabs that are needed. Don't rely on the manual since you likely will be more confused. "Use the force".Hence, -1.5 star from the screws. -2.5 stars from the confusing, hard to read manual. |
| 4 | 30693 | 5 | 1 | 4 | -0.648 | -0.049 | -0.554 | 54 | If you want to pay $100 for this then go to your local retail store and buy their older model for 3x the price. This things is protecting/powering my Onkyo 7.1, Blu Ray, Satellite, 47" LCD w/ zero problems. If you are thinking about this think no more and buy it now! |
| 5 | 30711 | 5 | 1 | 4 | -0.799 | -0.040 | -0.598 | 142 | Pro:Very sturdy and heavy, so it should last a long time even with frequent pulling in and outLot's of screws for any mounting surface you might use.Dual arm extender prevent that sagging to one side that some people have complained about in other wall mountsCons:Cable management cover might come in damaged with a small ding, might be due to it being pre-installed in one of the arm. Nothing like a few bangs with a hammer and wood block couldn't fix :)Holds up my Sony KDL-55HX729 w/o a hitch. Was a pain in the behind to install by yourself since this monster is heavy to hold up on the wall with one hand. But as long as you pre-drill your 2 top pilot holes in the studs, it shouldn't be too much problem. |
| 6 | 30722 | 1 | 5 | 4 | 0.693 | 0.106 | 0.310 | 273 | I was really looking forward to getting this router, having waited a long time for someone to finally offer an 8-port wireless N router.I have a D-Link DIR-600, which has been very reliable for nearly two years.I hooked up this router and the wired connections began working immediately. I had to call tech support to get the wireless working. We have computers running Windows XP, Windows 7, and Mac OS 10.5 on our wireless network. The Mac worked fine on the first try, but of course both Windows machines had trouble connecting. D-Link tech support was good, though, figuring out the problems within about 20 minutes on a Saturday morning at 5 AM. They got both Windows machines up and running.Five hours later, the connection dropped. Not just the wireless connection, the entire connection to the internet! Restarting the modem and router worked -- for about an hour. Then the router went down again. After that, it would stay connected for no more than a minute. Tech support said to return it. Sounds like they are getting a lot of these back.Cheaply manufactured junk, with no quality control. Tiger Direct graciously paid for the return shipping via UPS, but gave no other option than returning it for a refund. No exchange for another one. I'm not sure if this is their policy for all items, or whether they know these are junk.Not sure if I'm going to try another one. I wish there was another 8-port wireless N router on the market, I'd try it if the price was right. |
| 7 | 30723 | 1 | 5 | 4 | 0.424 | 0.171 | 0.661 | 113 | I had this router for a few months (maybe 1 year). I had it connected to a UPS battery so it would last longer but no luck.I got a blue power light blinking and nothing else. Tried to reset , etc. Called Linksys and they said its gone, throw it away.Don't even bother with the online tips. If you are not getting a link light on one of the 4 switch ports and your PC says "Network Cable Unplugged" the thing is bricked for good.I understand Linksys (Cisco) cannot honor they hardware warranty forever but the quality of their products have clearly declined.Not sure I will buy Linksys again |
| 8 | 30754 | 1 | 5 | 4 | 0.497 | 0.125 | 0.324 | 40 | If you enjoy bass in your music, forget it. You get what you pay for. These may work well if you listen to audio books, but for music, they don't make the cut. Mid-range is all there is. |
| 9 | 30761 | 1 | 5 | 4 | 0.918 | 0.157 | 0.374 | 252 | I bought this thinking that the resolution would make the screen look so much nicer. Maybe like a non-retina iPad to an iPad with retina. No, this is not the case if you have anything under 25 inches in 1080p or 1200p.. The pixels per inch (ppi) are only about 10-15ppi off from this monitor on my Dell U2412m 1200p monitor. Also, from my U2412m, there was only an increase of 1 and a half inches on each side of the monitor in comparison and a very very tiny increase in height. This is all for MORE then 2 times the price of the U2412m.For some reason the monitor stand felt like they used cheaper plastic or something with this over my current dell. If you didn't know, the U2412m is in the same line up as this monitor and uses the same stand on it. The new one felt more wobbly.I also happened to get a defective one with a green fuzzy lined screen when you would accidentally bump the Dual DVI cable. So then I tried a Display Port slot with a 1.2 cable and that didn't even register.So over all this I had to return it. Even if it did work I just can't justify getting a 600 dollar monitor if I already have one that is nearly as good. for more then half. I do highly recommend the U2142m however. That is my favorite monitor I have ever used. |
| 10 | 71169 | 5 | 1 | 4 | -0.599 | 0.000 | -0.530 | 23 | The two sets of UNIDEN two-way radios I purchaed arrived promptly and work as advertised, no problems were encountered in the purchase. |
| 11 | 30859 | 1 | 5 | 4 | 0.862 | 0.072 | 0.623 | 107 | I bought this to use with my lighted world globes so that I could turn them (4) all on with the single push of the remote button. I set this up and tried it and it worked fine.....once. My wife then noticed a buzz and we traced it back to this devise. When I went to turn it on again, it failed. Played around with it for awhile, but no luck.Great concept, and would have fulfilled my need perfectly, but it didn't work. So I returned it.(FYI, first time I ever returned anything to Amazon, and the entire process was simple and convenient!) |
| 12 | 30621 | 1 | 5 | 4 | 0.830 | 0.078 | 0.282 | 238 | Yes, they have online customer support with questions and answers, but if you need help, for example their help instructions don't work, there's no way to contact them, and least not for me. They indicate that you can email them, but after filling out the form, which was fine, except that I literally had to get a magnifying glass to read my serial number in order to enter it into the form. The real problem was their stupid disguised words that you have to decipher and enter into the form before your email will be submitted. I gave it my best shot, but after failing, and having to re-enter data that was lost due to the form resetting, I started to go through a lot of word choices before taking another crack at deciphering. Well after about 30 minutes of this, I was done trying. Oh, and they kept sending me back to pages of questions hoping I'd find my answer there, but of course, I had already read all of those "helps" before ever trying to contact them. So this was repeatedly insulting--why would you treat your customers like that? It doesn't matter how good any product is if customer support is non-existent. I actually wonder if any of the disguised words are ever deciphered correctly. I think even when guessed correctly, they treated it as a failure. |
| 13 | 71151 | 5 | 1 | 4 | -0.735 | 0.100 | -0.551 | 30 | 32G for external memory for my tablet. Class 10 for the speed (don't really see a difference in this application, but it does matter in a camera). No problems. |
| 14 | 30898 | 5 | 1 | 4 | -0.506 | 0.022 | -0.398 | 164 | I make it a habit to periodically make a clone of all of my computer's hard drives. Then when, not if, a computer fails or becomes corrupted with junk I simply take it's drive out and replace it with the previously cloned drive and keep on computing. Sure I loose a bit of data from the time I made the clone to present but it's better than having to start all over which I've had to do too many times in the past. I use these enclosures for that purpose. Installing or removing the hard drive is easy once you do it a time or two and the whole process can be completed in a matter of minutes saving perhaps hours of trouble shooting and re-installing programs and data on a crashed machine. I have several of these external drive enclosures and have nothing but praise for them. BTW I've never had an over heating problem with them. |
| 15 | 30915 | 5 | 1 | 4 | -0.846 | -0.032 | -0.760 | 76 | Have had case for about a year and haven't had any issues with it, though it doesn't get much heavy use. I've packed it in a carry-on a few times when flying, but for the most part, I keep my external hard drive in it, sitting on a shelf. The case is well constructed and I have no doubt that the inner padding would prevent any damage to its contents if dropped. |
| 16 | 30960 | 1 | 5 | 4 | 0.751 | 0.221 | 0.269 | 104 | I purchased this purely on price and a few reviews I read. Well when the Memory got in, I installed it with no issues, my Mac ran fast again. Well after a short period of running it (about 30 min) the Mac CRASHED!!!! It continued to crash several more times before I removed the Memory and sent it back. I will be trying the Crucial 16GB Kit (8GBx2) DDR3 1333 MT/s (PC3-10600) CL9 SODIMM 204-Pin 1.35V/1.5V Notebook Memory Modules, this has better reviews for the Apple products. If you own a mac, PLEASE don't use this Memory!!! |
| 17 | 71097 | 1 | 5 | 4 | 0.883 | 0.850 | 0.935 | 29 | Firestik does a great job advertising their garbage. Don't believe it! Do youself a favor and buy an Everhardt SOTT antenna if you want good quality and performance. |
| 18 | 94200 | 5 | 1 | 4 | -0.724 | -0.234 | -0.596 | 78 | Works perfectly, NO CABLE PROBLEMS that others describe, could be faster (it may be my computer that's slow), I can carry it anywhere in confidence.side note: ALWAYS keep another copy of your work somewhere else, whether its on this drive, your computer, or another drive. There is no such thing as a 100% fail-safe hard drive, they will ALL break eventually. And when the drive breaks, you loose everything on it.Great drive, buy it. |
| 19 | 30992 | 5 | 1 | 4 | -0.723 | 0.200 | -0.527 | 48 | I have all the outlets in use on this one and have not faced any issues yet. Of course you need to be careful on how you balance the load on the socket, but on the whole Belkin is a reputable company and I've got no complaints. |
| 20 | 31026 | 1 | 5 | 4 | 0.977 | 0.087 | 0.269 | 638 | I have owned Creative products before, and have generally been happy with them: I have a MuVo I have been using for about five years, and have Soundblaster Audigy cards in my machines at home.The Portable Media Center is a bad effort by Creative, and for several reasons:1) It has a nice screen, and if you play WMA files with album art, the art displays. However, if you have MP3s with album art, forget it. I tried to get Creative's help with this, and got nowhere.2) Some MP3 files will not play at all. You get the message "The item is missing or damaged. See Portable Media Center Help on your computer."3) Some MP3s play, but with weird glitches in the first ten seconds or so. It sounds like pieces of the file are skipped over at high speed. This is repeatable (when a file has this problem, it always has the same glitches in the same places.) Creative was no help with this.4) Periodically the machine forgets it has an internal speaker (pull the headphones out of the jack and you hear nothing.) If you reset the device then POOF, the speaker works again.5) Though the PMC is VERY expensive ($500 for a 20Gb device that can only play Windows Media Video files?), Creative has never released an update for the buggy software. I have been checking the Creative web site for a year and a half (since I got the player as a birthday present from my wife) and they have not put anything on there since 2004. They released half a dozen updates for the Muvo firmware for my other player, but nothing for the PMC. Apple updates their iPods, why can't Creative update their expensive clunker?6) Creative will not help you with any problem after 60 days, unless you either buy their Support option or pay them $13 for a half-hour call. They tell you to check the web site for information, but they don't even admit to the problems I have been having on their FAQs. (I know they are aware of these problems, because I have read other people's complaints about the player, but they pretend the problems don't exist.)One comment about the player itself. The ergonomics are strange. The rocker switch on the left only works when you are in the menu system; you cannot use it to skip from track to track while playing something. The rocker switch on the right is not a "wheel" type rocker, though it is circular. There is no "up" or "down" on it, though it would have been trivial to use that for volume, which would have reduced the number of switches (and the cost of the product.) Because there is a special button to escape to the menu system, you could have got rid of every button on the right, and had exactly the same functionality. Maybe they needed a box big enough to hold the battery and hard drive, so they decided to fill the space with buttons.There are preset buttons on the top of the unit. If you press and hold one, it will "bookmark" a song or video. Pressing the button later will return to that content. I have never had a use for this feature, and fail to understand what having four song or videos available by pressing one button is useful for. (Maybe you need theme music when you enter a room?)The video iPod is smaller, the Archos players play all kinds of formatted video, and virtually every other player in the universe can display the album art from an MP3 when playing it. There is no reason to ever consider buying this player. I am surprised Creative is still selling it. |
| 21 | 31033 | 5 | 1 | 4 | -0.757 | -0.073 | -0.241 | 121 | This is a great little scanner and really works well. It is a little difficult to program at first but read the directions carefully and you'll be ok. The only negative thing I can say about it is the gawd awful looking NASCAR insignia on the front screen. It's not a sticker so you can't pull it off, but you can cover it with something. Why Uniden chose to put this on there is beyond me. IT LOOKS LIKE CRAP! Almost didn't buy this scanner because of it but decided to cover it up instead. Uniden, take note! Lose the NASCAR insignia or make it a sticker that can be removed. We are not all red necks! :-) |
| 22 | 71217 | 1 | 5 | 4 | 0.953 | 0.053 | 0.159 | 219 | Just got the Logitech Squeezebox radio. Easy installation. Fussy but not too difficult setup. Sounds good. Looks good.I am sending the Logitech Squeezebox back for credit. All the positive qualities it possesses I get in my two media centers and iPhone. The one thing I need it to do, it can't. What I want from this device is to wake me in morning with the tones of the internet station as I programmed it. Instead, I get a wake-up with teeny-bopper mall music. It's intermittent --70% of the time. Having reset the device and done all the firmware updates to no positive effect, I called Logitech Support and was blithely told it was an inherent problem of which they were well-aware -- and weren't planning to fix. Seems the alarm only plays the radio in the afternoon. In the morning it's bubblegum (the default). I'm not making this up. This is what I was told. So, if I changed my biological clock to get up at noon, I'll get radio.Sure, I can get a plain old clock radio (I have two already) to do that. But why waste $170 on a device that can't? It's the whole package or none at all.Pity, it had such promise. |
| 23 | 30618 | 1 | 5 | 4 | 0.883 | 0.156 | 0.696 | 122 | Thinking Memorex will be of good quality and there would least chances of coasters, I bought 3 Spindles (30 CD-Rs each).. I have tried variety of Drives (I/O Magic, Mad Dog and Micro Advantage).. I have always used Roxio Media creator 7.. With the above combination, I have been successful in burning one out of 4 or 5 Discs.. Mostly I get Media Errors and Some weird errors.. The 4th or 5th CD that burns, takes atleast 5~7 Minutes..!! Funniest thing is, the Free after rebate CD-Rs burn past (2~2.5 Minutes and w/o No Errors absolutely) and perform beautifully..!!If you are thinking of storing and preserving, Precious Data/Video, Please go for TDK/Verbatim..!! |
| 24 | 71604 | 5 | 1 | 4 | -0.723 | -0.122 | -0.212 | 38 | lovem can't say enough aboutem easy to program easy to use ,hated the shipping charge but if you need something bad enough you'll pay their ridiculas shipping cost but all in all the glasses are awsome. |
| 25 | 30267 | 5 | 1 | 4 | -0.833 | 0.155 | -0.186 | 204 | It is relatively small and portable.. except it is wide enough to take up 2 of many laptop, front desktop, or possibly even back desktop USB ports. My front USB ports have more space between them than most, so it works perfectly for home, but it can cause problems with not fitting when I carry it around with me. I only bought this one because I don't like wire clutter and wanted a faster reader, so that works for me. One other notable issue is the key-chain loop is located on the cap.. so you would easily lose the reader if it came off by using it... pointless.The reader is letting me transfer from my SanDisk to the computer at over 100MB/s! I didn't even realize the SD card could be read that fast. (Its specs just say 30MB/s read/write.) What is odd is I had bought a black version of this reader from Amazon when they came out that caps at 20 MB/s.. so I'm thinking that had either been a knockoff or defect. I got this to carry around, but guess I'll use this one at home and carry the old one. |
| 26 | 71569 | 1 | 5 | 4 | 0.890 | 0.224 | 0.812 | 173 | I bought this product after using two Cobras for 6 years. I thought I'm buying a premium product with a performance superior to Cobra. Boy, was I wrong.Last week I was travelling in Florida doing 90 m/h with highway mode on. Suddenly the radar alarm went off and the word "LASER" started flashing. Within 5 seconds I went from 90 to 65. That didn't prevent the police who was holding a radar gun from reading my speed within the first fraction of a second. He was about half a mile a way. I got $250 ticket!This is a $330 product, personally, I found it even less of a good product compared to my latest Cobra (XRS9570) which is $130 only.Stop the hype, buy something that work and save yourself $200 plus speeding tickets!This device was my first ESCORT, I'm sure it's gonna be my last!BTW, false alarms happen many many times within an hour, just like the Cobra, if not worse |
| 27 | 30028 | 1 | 5 | 4 | 0.983 | 0.252 | 0.569 | 363 | UPDATE: This was a lousy cover. After just a couple months of use, it was cracked all over the place, particularly near the corners where tiny pieces of the material have fallen off. There are many better options out there (and hopefully, Belkin has moved on to something better by now).Below is my original review...If your intention is to get this shield, put it on your iPad and leave it there, then I think you will be VERY satisfied. I was immediately impressed at its durability and fit. It also looks nice, and has a texture that feels good. The shield snaps into place so perfectly that there is no way it would accidentally come off. Prior to getting this shield, I was always careful to put down my Smart Cover protected iPad with its bare back facing up. But the Belkin shield completes the protection...I can toss it into my backpack confident that both sides are now protected.However, if you need a shield that is easy to put on and take back off, you might find that the fit is TOO snug. Consider the following:1) If you decide to remove the shield, you have to apply some pretty precise force to the corners to get it to come off. I have a dock I use regularly that will not work well with this shield in place. I'm considering discontinuing my use of the shield just because of this issue.2) The other problem is related: Having removed the shield a couple times now, I've noticed small cracks in 2 of the corners of the shield. Not only is it not easy to remove and reinstall the shield, but it seems that doing so is damaging the shield. So far, those cracks do not seem to have affected the ability of the shield to stay in place, but I am concerned that after a couple months of this routine, the cracks could result in the shield no longer staying in place.Again, this may be absolutely perfect if you are seeking permanent protection. But you might look elsewhere if you want an easy-to-remove cover. |
| 28 | 71568 | 5 | 1 | 4 | -0.454 | 0.092 | -0.468 | 81 | I am using the AmazonBasics HDMI cables to connect1. a monitor to my computer,2. Apple TV to 75" TV,3. Bluray to 75" TV,4. XBox360 to 75" TV,5. Wii (via adapter) to 75" TV and6. ARC return to surround sound receiver.I have had absolutely no problems. The cost of all of these cables from Amazon was less than buying a single cable that the media specialist who installed the surround sound speakers recommended. |
| 29 | 30060 | 5 | 1 | 4 | -0.803 | 0.042 | -0.133 | 57 | I was hesitant to buy a flash drive that had a swing cover, but this one seems to work very well. The movement of the swing cover is smooth and takes deliberate force. My previous flash drive was very floppy and loose. Floppy and loose is never good. The speed is average, but the price is cheap. |
| 30 | 94163 | 1 | 5 | 4 | 0.925 | 0.229 | 0.673 | 62 | I'm pretty sure I can get this to fit into the computer but a little instruction sheet would have been nice. An update. You would have to be technically proficient in order to be able to properly disassemble a laptops body to get to the power port. The part looks plug and play but only if you know how to play. |
| 31 | 30201 | 5 | 1 | 4 | -0.738 | -0.097 | -0.441 | 71 | I have been using this item for the last few months. Apart from the new-product chemical smell that went away within a few days the item has been just fine. The only issue is that I also put a hard shell on my MacBook Pro which caused it to not fit very well into the sleeve. I have since removed the hard shell (it was worse than nothing at all). |
| 32 | 97485 | 1 | 5 | 4 | 0.989 | 0.119 | 0.354 | 371 | I bought this device hoping to be able to play iTunes songs over my home theater system. Got it all hooked up and "working", started playing iTunes, and was happy -- for about 30 seconds. Then the music started to cut in and out about every 10 seconds. Not only that but to my amazement, between cut-outs the music TEMPO started to wander up and down (as though playback was speeding up and slowing down about 5 - 10%). Last time I heard music do that was on an old Abba cassette in about 1986, which had been played so much the tape had stretched. I never thought it could be an issue with _digital_ music!I am *not* just a complete idiot who just didn't read the manuals. I did get this device to _function_, I was just not able to make it work to my satisfaction. To be blunt, there's not much that one can do; the unit has a grand total of three buttons: Power, TX/RX mode, and ID (sync). There are no additional software settings in the BT profile. So, once you've got the device powered up in RX (receive) mode and successfully sync'd, theres literally nothing else you can "tweak" on the unit itself.I turned off all other non-essential wireless gear, reduced the distance between my PC and the Sony device to 1m from 8m, with no appreciable improvement, though none of these actions are necessary to make my Logitech FreePulse bluetooth stereo headset work perfectly with the same PC and the same (Belkin) BT adapter at 20m. I use the headset to listen to music and play games like Unreal Tournament III, so my computer, Bluetooth stack and BT adapter are all known to work properly together in A2DP mode in the same environment and at greater distances, and I don't experience any tempo variance or cut-outs with the Logitech headset.After several days of intermittent fiddling, searching online forums and looking for fixes, workarounds and/or firmware updates (none available at the time of writing), I gave up. I returned the device for a refund, and I'm now on the hunt for a workable replacement. |
| 33 | 30227 | 5 | 1 | 4 | -0.906 | 0.180 | -0.736 | 132 | Just put this up, had no issues at all. I did replace the 6 lag screws with 1/4" x 2.5" lag screws (I used .20" pilot holes). I actually push-drilled a bunch of pilot holes to ensure that I was screwing into the center of the stud, instead of off to the side of the stud (where it may split). Since the pilot holes would be covered by the TV mount, I didn't care.I was able to use the included M6 screws (the shorter ones) to screw the included brackets to my Sony Bravia 46" with no issues.I was able to do pullups on the mount after I had all the screws in (I weight 175lbs), it's solid. A no-brainer purchase at this price. |
| 34 | 71412 | 1 | 5 | 4 | 0.984 | 0.416 | 0.761 | 195 | Bought both the PS4 and Xbox 1 for my kids - and am glad I did. The PS4 took hours to even let us signon and update - then ran for about an hour before going into a series of freezes, hard resets, etc. After an hour on hold - I spoke to a very nice rep, who did his best to get us working But to no avail. So now am waiting on a mail-back-to-Sony box and about a week or two to get a replacement sent to us. Would have returned via Amazon, but also on backorder there so hoping this is the fastest way to get my kids a toy they can play with within a couple of weeks after the holiday.Knew buying a new system before they had the kinks out could be a problem... counted on Sony to do a better quality control job. Sad.On a related note - the XBox runs like a champ, graphics are great - and updated quick and smooth. So - while your mileage may vary - in this instance I've got a 5 star Xbox, and a 1 star (would be zero) PS4 Xmas experience. |
| 35 | 30270 | 5 | 1 | 4 | -0.609 | 0.000 | -0.533 | 45 | paired this up with aGigabyte Intel Z68 Micro ATX LGA 1155 Motherboard (GA-Z68MA-D2H-B3)andIntel Core i3-2100 Processor 3.1GHz 3 MB Cache Socket LGA1155for my HTPC and i couldn't be happier, running at 1600 with 1.5v. No issues here. |
| 36 | 30590 | 5 | 1 | 4 | -0.741 | 0.182 | -0.536 | 46 | Its an optical cable and works as it should, have had no problems with the product and don't think I ever will have a problem. The cable looks and works just like my other optical cables I bought from monster, and this is much cheaper!!!! |
| 37 | 30275 | 1 | 5 | 4 | 0.709 | 0.103 | 0.293 | 137 | This was bad right out of the box. The LCD screen showed distorted and abstract images and the photo's looked the same. I sent it back for a refund immediately. I noticed that one other reviewer had the same problem. For those of you that got a good one, congrats. Nevertheless, This is a very cheap camera -- unlike the usual high quality of Canon. It is very light and very plastic. It feels like a toy. I have an A1100is and an A630 Powershot -- both high quality. I bought this camera as a gift because of the "old fashioned" view finder (which in reality is extremely helpful in composing and holding the camera steady. I guess I will instead give my wife my A1100is since new ones are now over $300 -- if you can find one. |
| 38 | 30297 | 5 | 1 | 4 | -0.599 | 0.000 | -0.530 | 22 | I've been using this in my camera for a while now. I've had no problems with this SD card whatsoever. |
| 39 | 30360 | 5 | 1 | 4 | 0.777 | 0.207 | 0.295 | 236 | This cable was purchased to be used in conjunction with my iMac to eliminate having to always partially rotate my iMac to plug the pin of the plug end of earphones or a headset into the socket on the back of the iMac.The pin of the plug end of the BlueRigger cable plugged solidly into the iMac, as do my earphones and headset, but the pin of the earphones and headset plug kept sliding out of the socket end of the BlueRigger cable.I am certain the fix is simple, by adjusting the pawl in the socket that is supposed to lock-in the pin of the earphones or headset plug, but there is no way to get to the pawl and make the adjustment; leaving me with no option other than to return the BlueRigger cable for a refund, as the seller does not make exchanges.>>>>> UPDATE: December 2, 2013 <<<<<Received replacement cable. It works as advertised and I am pleased to report I am listening to music from my iMac through my headphones via the cable and am a happy camper. The faulty cable must have been one of those % of % percent that somehow get out to customers. I have nothing but kudos for the way my claim was handled and am now totally happy; increasing my previous one-star rating to a full five.BlueRigger Rocks!👍 |
| 40 | 71364 | 1 | 5 | 4 | 0.421 | 0.352 | 0.447 | 94 | I tried this in my workshop transmitting an FM signal to my ear protector/FM receiver head set. I have a pretty good quality head set but this just didn't send a strong enought signal for even 5-10 feet away. It could have been that I have too many ducts, motors and other metal objects in my woodworking shop which interfere. I had to return the unit...sadly, because I wanted the functionality. FYI, I haven't as yet found ANY transmitter that will work. I have given up on my pursuit. |
| 41 | 71363 | 1 | 5 | 4 | 0.926 | 0.121 | 0.802 | 110 | Unfortunately, I have recommended this battery to a number of friends over the past few months. I purchased this battery from Amazon in June of 2010 (seller was Sound Around, inc at the time). It originally held a 4 hour charge, but after just 7 months, that is down to only an hour or so.The moral is, once again, "You get what you pay for". You would be far better off buying a decent battery from Other World Computing, even though they are twice the price. Those batteries should last for many years.Service from Amazon and Laptopmate has been great, as always! Just don't buy these batteries. |
| 42 | 30452 | 1 | 5 | 4 | 0.340 | 0.154 | 0.633 | 106 | Simple. It was an open-and-shut case. I got it out, tried it for a few seconds. Its chromatic aberration made my head spin. I shoved it back immediately and sent it back.By the way, there are too many pockets that may retain water. I wouldn't call this water-resistant, let alone waterproof.This thing sure made it easy for me to decide.I ordered a 10 x 20 Zeiss Conquest. Obviously, the two belong to two different categories, but the image quality of the Zeiss makes this Nikon's lack of image quality look like a 25 toy from the vending machine. |
| 43 | 30461 | 1 | 5 | 4 | 0.637 | 0.026 | 0.268 | 290 | This is the first Sony product that i just absolutely hated. I'll start out by saying I'm far from a audiophile but i know what quality speakers sound like and its not this. Granted its a $50 dollar set of Wireless headphones so I'm not expecting the world but man are these terrible. First off if you have the headset on without having something playing it sounds like your old school cable crapped out and you are getting blasted by white noise from your tv. Second the volume gets loud and soft quite often and its not because of a low battery(first charge was for close to 36 hours) and not because of the range(I am no more then 10 feet away). Third thing is that they feel very cheap and by cheap i mean very flimsy and plastic(feels like a cheap toy your kid would brake in 2 second). God forbid you fall asleep with these on or drop them from your bed or sofa. AND Last and more importantly the sound was terrible. At about medium headset volume the bass and highs sound like they were playing from the blown speaker in my 98 corolla.Thought i would roll the dice since the reviews were some where around 50/50 but i hope future buyers read this and save the time it takes for amazon to ship you this and for you to ship it back for a refund.Would give no stars if that was an option. I was use to a certain quality from Sony and this is not it.Maybe i just got a dud, but from most of the other reviews i may not be the only one. |
| 44 | 30486 | 5 | 1 | 4 | -0.691 | -0.099 | -0.577 | 58 | Bought this to replace another bad DIMM in a different laptop, this time an old Core Duo MacBook Pro. Ironically this laptop had 1gb original DIMM and a 1gb Crucial DIMM in it. It was the OEM DIMM that conked out. After swapping out the bad DIMM with this new one, the laptop was back up and running. |
| 45 | 30563 | 1 | 5 | 4 | 0.648 | 0.273 | 0.249 | 63 | Bought this to use with my Mac Mini PPC and my new Mac Mini Intel. Seemed to work at first, but then refused to recognize either the keyboard or mouse. (Macally and Kensington). Took it back and exchanged it for the IOGEAR GCS632U, which works perfectly. Instead of an unreliable external switch button, it uses a hot key.Beware of Belkin!LMCambridge MA |
| 46 | 71042 | 5 | 1 | 4 | 0.441 | 0.086 | 0.649 | 28 | It worked for me at least, not sure about the 1 star reviewers. The process was very fast and easy through Amazon. Got the code right after purchase. |
| 47 | 71007 | 1 | 5 | 4 | 0.986 | 0.103 | 0.144 | 1242 | I'm actually quite surprised that the NSLU2 device currently has an average of 3.5 stars. Unfortunately, for such a simple device, I have found it to be a dismal waste of my time. It has been unreliable and performance has been inconsistent. I bought this device to give to my sister, as a means of allowing her to store music and movie files on her network. She has very little technical understanding, so a device that is easy-to-setup and use is a requirement. The NSLU2 is not that device!First off, I want to point out that I am a Linux Systems Administrator with 10 years of experience. I know about networking and computers and obviously Linux. This device is running Linux internally, with Samba being the internal application that provides access to the attached USB disk (i.e. via Microsoft Networking). That said, I hope no one takes my comments as Linux-bashing. On the contrary, I'm a big supporter of Linux. Linux is a great operating system. Unfortunately, the NSLU2 is a poor implementation of Linux as an embedded device.If Linksys is taking notes on how to improve this product, here are some suggestions. Begin shipping these devices with a serial console port, an SSH server automatically enabled, a faster CPU, and more memory. Having all those items should improve the performance of the device, as well as allow knowledgeable system administrators to fix the "quirks" when they develop.Regarding the slow transfer speeds, which many others have complained about, I confirm this. First, the NSLU2 gets about a 25 Mbits/second transfer speed, while a real computer which exports a shared directory through Microsoft Network can achieve about 75 Mbits/second. While 25 Mbits/second is slow, it's tolerable. (Of course, this assumes that it is attached to a 100 Mbits/second network.) Second, others have complained about the NSLU2 being slow in comparison to the transfer speed they achieve when the USB drive is attached to their computer directly. Well, that's expected. When directly attached to a computer, USB 2.0 is capable of up to 480 Megabits/second. But the NSLU2 has a 100 Megabits/second network port. By putting a network between your computer and the USB2 drive, you're limiting the throughput to only 100 Megabits/second, 20% of what USB2 is actually capable of. Incidentally, if you're thinking of buying a similar device with a 1 Gigabit/second (i.e. 1000 Megabit/second) network port, do your research, as many will never achieve anything beyond 100 Megabit/second speeds anyway.In the first few days of owning the NSLU2, here's a sampling of the problems I have had. (1) If I deleted a directory on the NSLU2, it would reappear again instantly. This is most likely a problem with Samba within the NSLU2. Having seen this problem in the past with real Linux servers, it's caused by an incompatibility between how Windows saves files (i.e. attributes and permissions) and how Linux does so. Samba "maps" the Windows attributes and permissions to similar attributes in Linux. Because it's not an exact mapping, quirks will sometimes develop. Also, some filenames that are valid on Windows end up causing problems for Samba. To solve this problem, I had to copy all the files off the USB drive attached to the NSLU2, then reformat the drive. (2) The DHCP client on the NSLU2 is incompatible with the DHCP server on my network. I had to configure the NSLU2 with a static IP address to overcome this. (3) The USB drive attached to the NSLU2 just disappears from time-to-time for no reason. The NSLU2 is available on the network, but it doesn't see the attached drive. (4) Transferring very large files (e.g. 3 Gigabytes) to or from the NSLU2 will cause the device to freeze up, and it will no longer appear as available on the network. I have read that this is probably being caused by attaching only NTFS or FAT32 drives to the NSLU2. Others have suggested that using the NSLU2 to reformat the USB drive will improve reliability and performance. After using the NSLU2 to format a new USB drive, I see that it created 3 partitions: one big EXT3 partition for my data, one small EXT3 partition for user/group authentication information, and finally one Linux Swap partition for improved memory management within the NSLU2. (By the way, EXT3 is the default filesystem used by most Linux distributions.)Besides reliability issues, the NSLU2 has usability problems. (a) You won't be able to take advantage of the user/group permissions of the device unless the attached USB drive is formatted by the NSLU2, as the user/group permissions need to be stored on a special partition the NSLU2 creates on the USB drive. (b) The NSLU2 is only capable of formatting attached drives in EXT3 format. If you need to format a drive as NTFS or FAT32, you'll need to attach the drive to your Windows computer to do that. (However, the NSLU2 does support attached NTFS/FAT32 drives.) (c) Being a systems administrator, I understand how to configure this device, but I believe the user-interface will not be intuitive to many people. The unit's functionality is spread over too many different screens, and the clickable buttons are sometimes not in an appropriate place. You'll understand what I mean when you actually use it.Because of the extreme inconsistency and unreliability of this device, I will not be storing any data that I deem "important". At best, I will store only backup copies of files on this device, or files that I don't care about losing. I will probably use the device as a network drive share, where my Windows computers can save their nightly backups. That way, if the NSLU2 dies or gets really horked, I don't lose any data (the originals are on the Windows machines already). Additionally, I will also use it to store the very large ISO images of Linux distributions I download off the Internet. (I can always re-download the ISO images, if the NSLU2 dies.)Lastly, because we live in a "mostly" Windows operating-system world, here's a tip for those of you who find that the NSLU2 has failed you, as well as your precious data along with it. This is for those of you who find that your NSLU2 stops working. If you initially used the NSLU2 to format an attached USB drive, you should know that it will be formatted in EXT3 format, which Windows is not natively capable of reading. If you attach the USB drive to a Windows computer, it will not be able to read it automatically. However, there are a couple of freeware EXT3 drivers which allow Windows to read the EXT3 partitions on your drive. An easier solution for most people will be a freeware software tool called Linux Reader, created by a company named DiskInternals. (I do not work for that company and I do not know anyone who does, so it's not a shameless plug.) I don't like losing personal data, and unfortunately many people will get the wrong impression that their data is lost when the NSLU2 dies. Not necessarily so.Well that's all I have to say for now. |
| 48 | 31093 | 5 | 1 | 4 | -0.511 | -0.167 | -0.537 | 48 | Have been using this in Linux for a few months now with no problems. The drivers are included with recent kernels and the adapter works without problems. I've gotten at least 600Mbps through it, but CPU appeared to be the bottleneck there (scp) rather than the adapter. |
| 49 | 32133 | 5 | 1 | 4 | -0.535 | -0.106 | -0.531 | 58 | I have burned these in several different formats and the discs all work. I have used at least two packs of these and had maybe 1 bad disc and I am pretty sure it was my fault. I read some negative reviews but have had none of the bad experiences in over 200 discs. Well worth picking up. |
--- End of Worst Predictions Table for Feature-Based --- --- Confidence vs. Performance Analysis for Feature-Based ---
| Confidence Level | Num Reviews | Accuracy | Close Acc (+/-1S) | MAE | |
|---|---|---|---|---|---|
| 0 | V.Low (0-.25) | 14236 | 0.233 | 0.695 | 1.171 |
| 1 | Low (.25-.5) | 17800 | 0.483 | 0.793 | 0.846 |
| 2 | Med (.5-.75) | 31608 | 0.664 | 0.903 | 0.488 |
| 3 | High (.75-.9) | 20854 | 0.767 | 0.944 | 0.316 |
| 4 | V.High (.9-1) | 1051 | 0.885 | 0.987 | 0.133 |
------------------------------------------------------
2025-06-21 00:30:23 - INFO - evaluate_model - Evaluation for Feature-Based complete. Evaluation for Feature-Based complete. 2025-06-21 00:30:23 - INFO - evaluate_models - Evaluating model: Multidimensional 2025-06-21 00:30:23 - INFO - evaluate_model - Evaluating model: Multidimensional (column: multidimensional_stars)... Evaluating model: Multidimensional... --- Multidimensional Performance Metrics ---
| Metric | Value | |
|---|---|---|
| 0 | Accuracy (Exact) | 0.4462 |
| 1 | Accuracy (+/-1 Star) | 0.8261 |
| 2 | MAE | 0.7795 |
| 3 | RMSE | 1.1616 |
| 4 | F1 Score (Macro) | 0.2539 |
| 5 | F1 Score (Weighted) | 0.4620 |
| 6 | F1 Score (+/-1 Star) | 0.9048 |
| 7 | Precision (Macro) | 0.3710 |
| 8 | Recall (Macro) | 0.2669 |
| 9 | Cohen's Kappa | 0.1314 |
| 10 | Sample Size | 99,934 |
------------------------------------
2025-06-21 00:30:23 - INFO - save_worst_predictions_to_csv - Worst predictions CSV for Multidimensional saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/worst_predictions_analysis/multidimensional_worst_predictions.csv --- Top 50 Worst Predictions for Model: Multidimensional (Error >= 1) ---
| index | true_rating | predicted_rating | error | vader_compound | textblob_polarity | custom_score | word_count | text_preview | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 26666 | 1 | 5 | 4 | 0.459 | 0.000 | 0.488 | 14 | what a rip off you will find when the filters need replacing.good luck |
| 1 | 80580 | 1 | 5 | 4 | 0.824 | 0.091 | 0.765 | 282 | I purchased this unit because of the excellent luck I have had with Bose products in the past. I have had surround sound systems, outdoor speakers, and portable units from Bose in the past, and have always been pleased. I have always associated Bose with impeccable quality.Bottom line is that I was EXTREMELY disappointed with this unit. First, when I first took the unit out of the box, the little rubber pegs on the bottom that prevent the unit from scratching furniture came off. One would expect that by this point in time a company like bose would have perfected their manufacturing process where pieces would not fall off right out of the box. My second disappointment was that the docking connector is somewhat short, and the unit will not dock with an iphone if the iphone is in an otterbox or any other protective case. It is not practical to remove an iphone from case each time you might want to listen to music.The unit appears to overall be cheaply built. The docking part is not firmly affixed to the speaker unit, and has an annoying wobble, and leaves the impression it is ready to snap off at any minute.My final disappointment was in the sound quality . . . not at all what I have grown to expect from Bose. It was average at best, and I am sure I could have gotten equivalent sound from a unit costing 1/3 the price of this one.So, I am left sitting here with a unit that does not sound good, has pieces falling off, and will not easily dock with my Iphone. Likely the last Bose product I will buy. |
| 2 | 81048 | 1 | 5 | 4 | 0.419 | 0.298 | 0.685 | 40 | I have used it for about 20 days and was happy with it, but the cover would frequently pop off. It didn't fit exactly right - with that eventually it just snapped. Unfortunate because it seemed like a good product. |
| 3 | 41046 | 1 | 5 | 4 | 0.649 | 0.231 | 0.741 | 96 | Came in a big box with two other items. It didn't have its own packaging so it was just thrown in there. In the process of shipping or packaging it got bent in the middle therefore it is unusable.Put it on anyways to determine the quality: The places that weren't bent went on fairly well. It is possible to push out the bubbles, just depending on how much work you want to put into to. If you get one that isn't bent, it is a good screen cover especially for the price. |
| 4 | 41001 | 1 | 5 | 4 | 0.814 | 0.158 | 0.776 | 141 | I really wanted to like this camera - the still picture quality was excellent- but unfortunately I couldn't get the video to display correctly on my PC's. I run Windows XP on both and maybe it is on my end- but after waiting for 3 weeks for an answer from Nikon's Tech Support (with no solution) I returned my Nikon S8100 for another brand. The HD video now runs fine on both my PC's using a different camera brand. Another downer was the flash popping up right where my left finger was holding the camera. I got used to it quickly- but whenever I handed the camera to someone else to take our picture the flash always got blocked down my their left finger- even after I warned them...I hope the camera works out for others!Cheers |
| 5 | 61670 | 1 | 5 | 4 | 0.948 | 0.280 | 0.840 | 145 | We really liked this for our 8 year old's IPAD until this past weekend when he dropped the IPAD getting out of the car and the screen cracked. IPAD landed on side and then flopped forward onto screen - apparently the bumpers are not raised sufficiently on the front to prevent contact with asphalt.The carry handle is great and case easy to locate with the bright color, but unfortunately it does not offer adequate protection for a drop which is the reason we purchased this type of case. Looks like we are out $180 to fix the IPAD, plus the cost of this case and also purchase a case with better protection.Bottom line - the design is cool and handle a great feature but don't count on this case protecting your investment from drops which will inevitably happen sooner or later with kids. |
| 6 | 80967 | 1 | 5 | 4 | 0.559 | 0.482 | 0.614 | 100 | If you do happen to get a good one of these power supplies feel lucky. The ones that I did get that worked seem to be a great deal. But I got a couple that went out on me and there is no way to get it warranted. The phone number you call hangs up after 12-13 minutes (no matter when you call). I also tried the e-mail, facebook, and every other method to get it warranted and they would not reply. What good is a warranty if you the company that gives it won't honor it? |
| 7 | 40954 | 1 | 5 | 4 | 0.778 | 0.169 | 0.617 | 39 | The item I received is not threaded properly. I received it this way,and it will not close. I have other RAM products, and they are great. I'll be ordering another one, and hopefully have a different result. |
| 8 | 80903 | 1 | 5 | 4 | 0.943 | 0.285 | 0.383 | 50 | DID GOOD AT FIRST, WAS A PERFECT FIT, THIS CHEAP BATTERY BARELY MADE IT PAST THE ONE YEAR WARRANTY BEFORE IT WOULD NOT TAKE A CHARGE, AND THERE WAS NO OPTION FOR IT TO GET REPLACED ONCE THE WARRANTY EXPIRED, GLAD THE PRICE OF $11 WAS NOT A TOTAL WASTE |
| 9 | 80870 | 1 | 5 | 4 | 0.194 | 0.167 | 0.592 | 233 | If you have the older version Xbox that does not have the audio optical out then do not buy any turtle beach head set. Especially the Turtle Beach Tangos. If you plug in your headset with RCA cables, there is a very loud buzzing sound coming out of the headset. As soon as I unplugged the RCA cables the buzzing sound went away. I also had a pair of the XP500's and they did not do this on the exact same Xbox with the exact same RCA cable, which is the standard Xbox component cables that come with the older version Xbox's. I sent back the first pair I received and tried another one and it did the exact same thing.I also plugged the wireless receiver into my brand new computer I built with the audio optical cable and it sounded GREAT. Even thought the XP500's and the Turtle Beach Tangos say they only work with the PS3 and Xbox 360, they will work if you hook it into your PC directly. There was no buzzing sound at all with the optical cable hooked up to the wireless receiver. I tried it on my PS3 and my PC and it sounded great when using a Optical cable. But I wanted these for COD Black Ops II (Go Figure) and it cannot be used at all with RCA cables unfortunately. |
| 10 | 17449 | 1 | 5 | 4 | 0.809 | 0.258 | 0.644 | 87 | My iPad will not shut off when this is closed. I checked my settings and they are on. I had a cover on it before this one and it worked just fine but this one won't. The car charger will work with everything but the iPad. I can take the same cord and plug it in my other car charger and it works just fine. The case looks nice to look and that's all I can say nice about it nothing worked like it says |
| 11 | 17537 | 1 | 5 | 4 | -0.394 | 0.033 | -0.038 | 461 | I can not figure out how this item has a 4.5 star average. I have no choice but to rate it with 1 star. There are two main reasons for this.1) The band is not large enough to fit my wrist. Now, if I had some gargantuan wrists I wouldn't have been so harsh in my rating but my wrist only measure 8 inches. This isn't the first watch band that hasn't fit me but have you seen the width of this thing and the size of the iPod nano it is meant to hold? They are not small. Therefore, they should expect someone with a larger than average wrist to wear it. I'm uploading two photos showing the watch band and a tape measure so that others might save themselves from ordering this if it doesn't fit them. Each of the photos includes a second watch, theInvicta Men's 1107 Pro Diver Chronograph Black Dial Black Polyurethane Watch, as a size comparison. The Invicta fits my wrist. I can put it on up to the third hole and it is still loose enough to move on my wrist.Keep in mind that even if the band were long enough to fit me it would still only receive a 2 star rating because of this next item of concern.2) The craftsmanship of this watch band is really bad. On my first attempt to put it on the short side of the band popped off. At a later time when simply handling the band the other side popped off. They simply do not hold on very well and the part that holds the iPod nano in place is so flimsy. I suppose that once the iPod is attached it would make it stronger but the plastic is of such a low quality that I would be nervous that the watch would fall off and drop the iPod to the ground at some inopportune time if the watch did fit me.A normal watch band had a pin holding the band in place and that pin has spring loaded ends that have very tense springs keeping them pressed out unless you really work to get them retracted. This is what keeps a watch band attached. On the iwatchz these pins have a little nub that sticks out of the bottom allowing easy access to retract the spring on one side so that you can easily remove the band. The spring is also of a very low tension. So the nub is included and it is very easy to retract. This is a bad combination since just rubbing against ones wrist in normal wear can cause it to be retracted, unless you wear this very loose. |
| 12 | 61866 | 1 | 5 | 4 | 0.387 | 0.200 | 0.656 | 38 | My daughter dropped her Itouch on the kitchen floor and the screen broke. The only thing this protects is maybe the back of the Itouch. All the control functions are usable which is nice though. Shipping was fast. |
| 13 | 80641 | 1 | 5 | 4 | 0.710 | 0.024 | 0.718 | 39 | I tried these video cards with a micro computer, the video quality left much to be desired. Its almost impossible to get them to work with win 7. Simple little computer, meant for controlling a swimming pool system online. |
| 14 | 40739 | 1 | 5 | 4 | -0.612 | 0.140 | 0.344 | 44 | When it works it works. Trouble is, it loses signal many times during the month so we have to turn off and switch it on again which is a real nuisance. We are going to change it for a more reliable range extender (Netgear). |
| 15 | 61540 | 1 | 5 | 4 | -0.276 | 0.000 | 0.417 | 28 | I would not recommend buying if you are going to use it on a USB 2.0 device as its does not recognize anything 2.0 with it. |
| 16 | 80495 | 1 | 5 | 4 | 0.670 | 0.256 | 0.752 | 103 | These are decent, but nothing more. I was strictly looking for something to use while running and wasn't impressed with nether the sound quality nor the fit those headphones had to offer. They need constant adjustment and believe me, while running this is the last thing you want to be doing! Compared to my new Sennheiser sport series headphones I recently purchased, the Lenntek's are lacking far, far behind.If your ears are sensitive and you are constantly looking for something better to use while running, I would strongly recommend the Sennheiser MX75 Twist-To-Fit In-Ear Stereo Sport Headphones. |
| 17 | 98138 | 1 | 5 | 4 | 0.382 | 0.350 | 0.685 | 23 | This is not made very sturdy. The ipad falls if rotated into the vertical postion. I love the color but thats about it |
| 18 | 99136 | 1 | 5 | 4 | 0.586 | 0.354 | 0.597 | 37 | Never worked, Needed an additional piece that I could not find anywhere. And I checked at best buy and radio shack, part should not have been that hard to find. Also I have a JVC head unit. |
| 19 | 97130 | 5 | 1 | 4 | 0.581 | 0.087 | 0.692 | 148 | I have always used Kensington laptop locks and have always been impressed with the quality. Unlike less expensive products, a Kensington lasts forever, never breaks, and in general is easy to use. This time I had a little difficulty figuring out how to attach the lock post to the computer lock slot, but once installed it worked fine. And no more keys to lose!1 Year UpdateDO NOT BUY! Read all the 1 star reviews. I wish I had. Attached to my laptop for one year. I now have to remove and it WILL NOT UNLOCK!!! I KNOW the code is correct, it is one I always use. Entered it correctly the first time. NO luck! I could pay a locksmith but not worth it. I could cut the table and be stuck with a lock sticking out. All I can say is thanks a lot Kensington --- NOT! |
| 20 | 17647 | 1 | 5 | 4 | 0.440 | 0.700 | 0.622 | 20 | returned it. Should have guessed if i need good pix with zoom or macro, should have just gotten a camera |
| 21 | 40591 | 1 | 5 | 4 | 0.883 | 0.207 | 0.656 | 58 | this camera did not last more than a year and a half, good luck getting tech support that's not happening . they ask you to leave a number and they never call back .once in a while you will reach a guy and he sounds like you just woke him out of bed . buyer beware of this camera. |
| 22 | 62111 | 1 | 5 | 4 | -0.532 | 0.117 | 0.364 | 78 | Linco makes a pretty good standard stand but I would not reccomend this item to any photographer that will be attaching a strobe to this stand then then placing it above a client.It is not heavy duty, it it NOT stable, and I would not trust the plactic brackets used to mount the boom.I sent it back the very say day and bought a boom from Kupo Grips. Pay the extra few bucks to get quality.... |
| 23 | 80242 | 1 | 5 | 4 | -0.762 | 0.094 | 0.290 | 282 | I am extremely disappointed with this product. I've struggled through many firmware upgrades ( reminiscent of an 80's process btw) with no improvement. It has a life of its own, constantly changing modes, freezing etc. It's unusable. I had my neighbor's teenage son look at it on the basis that he is an ardent user/fan of gopro as I wanted to rule out the possibility it was my lack of knowledge. He gave up. I have talked to customer service and eventually (I'll spare you the long story) they eventually gave me the go ahead to send it back for them to look at. I haven't done that yet because at this point I have lost faith in their product and am fed up about all the time I have wasted on this but I need to do something soon as it's about to go out of warranty.When I am spending this kind of money I expect quality. The internet is full of tales of woe about this version of the GoPro. Anyway I'm going to have them fix it and probably sell it with full disclosure ( so at a considerable loss) along with all the accessories I bought and have never used because the camera has never worked.Next step for me is to look at the new Garmin unit. I've been a fan of their GPS and sports watches for a long time and the new camera is interoperable with other Garmin devices. Plus it doesn't look like it was built in the 60's.If I could give this zero stars I would. I'm done with GoPro |
| 24 | 97123 | 1 | 5 | 4 | 0.605 | 0.299 | 0.591 | 115 | Bought this for a Sony Alpha camera. Great Price compared to the factory Sony product. You get what you pay for. Broke and stopped working. Didn't even get used very much. Just wanted a better flash than what is on the camera. When it did work for the first few months it made the pictures look fantastic. I learned that even if you are a very amateur photographer and just take a couple of photos from time to time, that it is worth it to get an external flash. Again, the pictures looked great. I just sucked it up and purchased the Sony model. $400 OUCH! But again, you get what you pay for. |
| 25 | 17912 | 1 | 5 | 4 | 0.708 | 0.224 | 0.640 | 417 | Pros: Light weight , internet apps really cool, easy navigation remote control very slick and updated, HD picture quality = HD quality : I have time warner cable with HD DVR box. Watching any dvd including 3d, blu ray & 3d blu ray are all flawless.The passive 3d - Awesome & really cool, switching what ever you are viewing on the TV screen from 2d to 3d feature is really cool but not all that great, at least I had lots of fun with it; I remember watching some show about marine life in the ocean using the 2d to 3d - I had a great time experiencing it, I really like it.4 pairs of glasses for the 3d stuff5 HDMI ports 2 usb portsCONS : Takes 20 seconds to turn on (not a big deal)Not wireless , you have hook up a ethernet type of connection to it. May it had wifi but I think I tried it but, it didn't work so I continue to mess around with other stuff on the tv.Picture quality for older movies - I have a vhs dvd 2 way recorder with 1080p , I always set it on 1080p but from this TV the picture quality ( I guess its Vhs quality) can not compare to my 6 years old Samsung LCD TV ( I bought it before LED came out & before circuit city had this problem called going out of businessThe power cord is too short . No swivel stand, if you use this for any room that you will be mounting it on the wall then, it does not matter. The sound is pretty good, unless you need to have your ears checked. If its for a living room then most people would complain about the sound, its worth it to buy like a sound bar or bosse sound system or bosse speakers.No component or rca ports - its different , You get an rca super short cables & the other end is one prong that hooks to the tv. The same thing for component cables so that means you have to buy another set of rca or component cables & hook it on to the TV. If you use HDMI or usb or optical output for audio then no problems. Same for PCDid'nt pay attention the DVI but when changing inputs I did see PC.Conclusion: returned it back to Walmart the 2nd day after purchase and using it . I 'm getting the new 2012 model Samsung UN40ES6100 but the higher end model with full range 3d. |
| 26 | 80117 | 1 | 5 | 4 | -0.283 | 0.725 | 0.410 | 22 | Good while it lasted, but eventually became obsolete and broke. It is a nice product but with todays technology, why go Palm! |
| 27 | 18080 | 1 | 5 | 4 | 0.900 | 0.300 | 0.680 | 24 | Love my I-pad case. Especially that I can stand it up to use it. It really protects my I-pad. I love it |
| 28 | 81061 | 5 | 1 | 4 | 0.989 | 0.284 | 0.853 | 344 | I have a Sabertooth z77 motherboard and the intel i5 3570k processor. It is LGA1155 and I can verify that this fan works extremely well. My processor is overclocked using the XMP overclock in my bios from 3800 to just over 4300MHZ. The computer survived a half hour processor stress test using Prime 95 and barely broke 70 degrees Celsius. I was on the fence when I ordered this and was thinking of getting a h100i closed loop water cooling setup but decided against it and I am happy I did. There is no reason to risk a leak in a multiple thousand dollar rig and if you read the 50 one star reviews on every water cooler you will see the angry people who experienced these leaks. This is the one. Look no further. 400 awards isnt for no reason and the cooler performs awesome. The provided thermal paste is excellent as well and there was so much paste, I was able to re paste my other computers chip and its GPU heatsync.Its worth mentioning that if you have an LGA1155 chip, you have to install a backplate to mount the cooler on. The coolermaster haf922 case that I have had the cutout to access the backplate area just a little off. Because of this I had to remove my motherboard to install this cooler. It was time for a rewire anyway.It can be mounted in any direction so if you need to go parallel or perpendicular to your desk, you can install it either way.Again, the cooler performs outstanding. It mounts solid as a rock with the high quality mounts and backplate. The thermal paste is awesome. No leaks! And if it can keep my i5 at 70 degrees when overclocked 500 MHZ than what else do you really need from a cooler? my max chip temp is 105! i could overclock it a lot more and still be within the safe boundaries. if you really need better cooling than this to overclock, then just buy a better chip! |
| 29 | 81095 | 1 | 5 | 4 | 0.226 | 0.049 | 0.578 | 94 | I decided to purchase this brand battery because I have one in my cell phone that works great.The battery worked for about 30 minutes, then my computer shut off randomly. I checked to make sure that it was installed correctly, which it was, then it worked for about an hour before shutting off again. I ran the battery all the way down, then plugged it in to charge it and it would not except a charge.It did not work. I guess I will have to pay full price for the Apple battery. |
| 30 | 45695 | 1 | 5 | 4 | 0.440 | 0.100 | 0.652 | 20 | it burned out on me within a month. im going to buy a better quality one that at least works |
| 31 | 16367 | 1 | 5 | 4 | 0.958 | -0.200 | 0.747 | 77 | Nice and heavy BUT support head will not support the camera (foscam 8910) I purchased. The weight of the camera causes the support head to shift, and even fall over causing the camera to look for feet behind it. I can't use this item and found that the base coming with the Foscam camera works rather well and it is part of the package. I do NOT recommend this for stable support of an IP camera. |
| 32 | 15733 | 5 | 1 | 4 | 0.869 | 0.047 | 0.303 | 267 | I live about 70 miles from Chicago and this amp added to a DB8 antenna (in my attic) gets me ABC, NBC, CW, PBS, FOX, UPN, ION, TELEMUNDO, UNIVISION, and a few more, all in HD with over 85 percent signal strength. No CBS tho. That added to local South Bend area (with local CBS), I get between 38-42 digital channels. Most in HD.When I first installed this Winegard amp, I lost a couple of local channels and had a total of only 12, some with low signal strength. It was disappointing because I read that happened to another reviewer who rated the amp 1 star. However I checked all my self installed RG6 twist-on connectors, some were not making contact with the braid wires of the coax. I was cutting them off with the crimper tool... daaah! I love these twist-on connectors because you can reuse them over and over.The manual says to install aditional in-line amplifiers to each receiver set if a splitter is used. But I had no need for that. The antenna and amp are installed in my attic (2 story house), down connected to a 4 way 5-1000 Mhz recommended splitter, then from the splitter there is a run about 20 feet RG6 coax to my bedroom Panasonic LCD, and about 35' to the Samsung LCD in my family room (the Samsung gets a few more channels than the Panasonic)I also have 2 Digital Stream converter boxes that Obama paid for. I love these and will review them later with 5 well deserved stars. |
| 33 | 15773 | 1 | 5 | 4 | 0.178 | 0.700 | 0.543 | 35 | There is no weight to this thing, you go to pick the phone up and you have to hold it. It is good for cases that have an charge flap that opens to the front |
| 34 | 41834 | 1 | 5 | 4 | -0.299 | 0.104 | 0.431 | 39 | The arm that holds up the back of the tablet crumples backward when I stand my iPad up in this. It's okay in landscape mode, but the legs are a little wobbly. I do not recommend this product. |
| 35 | 41820 | 1 | 5 | 4 | 0.902 | 0.230 | 0.817 | 88 | Its ok, if you want to record old tv style (think 1980s over the air TV). But if you want anything HD, this camera does not record (nor does it advertise it either). It is great for a kid to play around with. But it is no good for people who want to just record things and view them on a computer (or tv, or burn to dvd) the video quality (on highest setting) is still lower then over the air tv programme, complete with mandatory "snow" effect. |
| 36 | 60936 | 1 | 5 | 4 | 0.869 | 0.242 | 0.659 | 42 | 7 channels at best, Go and buy yourself a real antenna. It is certainly pretty and if you are in a hi rise, then buy it. If you are in a home, spend the extra few dollars and install a real antenna |
| 37 | 81853 | 1 | 5 | 4 | 0.578 | -0.053 | 0.663 | 66 | We purchased several of these these products less than a month ago. Not only does it not work well with our Android device, Mac, or Linux, but we had one die and Plantronics are making a fuss about fixing/replacing it.Warranty: 0 starsMic quality: 4 starsAudio quality 2 starsAndroid support: 1 starMac support: 1 starLinux support: 0 starsComfort: 3 starsWindows support: 2 starsVery unhappy customer |
| 38 | 61150 | 1 | 5 | 4 | 0.983 | 0.122 | 0.819 | 240 | I recieved this battery less than a week ago, I also bought a new charge but not from the same seller. Just wanted to make that point before I go on with my review, that both the battery and the charger are brand new. I will tell you what I like about the battery first, I love the shape of the battery. Shape you say? Yes, the battery isn't flush with the computer, it has a bump at the back that raises the computer so that the computer gets ventilation. My laptop runs very warm and I was always afraid of burning it up. With the design of this battery there is air flow under my laptop. Now on to what I don't like, this battery was sold as extended. I would assume they meant extended life. What else could be extended in a battery? Well it doesn't even hold a normal charge let alone an extended charge. I got at the very most and I might be stretching it a hour and a half. that is not an extended battery. I also noticed when I bought it, it was free shipping with my prime......not now?! Did Amazon pull this battery from it perferred list of items? I am going to contact Amazon about sending it back, but that would mean I wouldn't have a computer for days because I disposed of the old battery. |
| 39 | 81737 | 1 | 5 | 4 | 0.756 | 0.266 | 0.780 | 135 | Just got this 514 today. I got it on buy.com for 9 bucks so that was a steal. However, I am starting to realise why they gave it away for $9. The setup was pretty smooth. I got it done in one shot. However, it has been dropping the connection every 5 minutes or so, sometimes even more often. I am sitting right in front of the thing and the signal strength is excellent. I do not understand why this is happening.For what I paid, I will live with the dropped connections. This router is not worth even a penny more though, so be careful before you buy.ps. The connection dropped thrice in the space of writing this mail. I am starting to think whether it is even worth what I paid! |
| 40 | 61162 | 1 | 5 | 4 | 0.686 | 0.165 | 0.739 | 81 | pros; fits well, very slightly better than nothing in some circumstancescons; almost doubles the size and weight of macbook, pretty much only scratch protection, if you drop macbook this wouldn't provide any real protection other than contain the pieces(maybe).Used it for a week, now it sits on a shelf, too bulky/heavy for the protection provided. If you don't mind turning your macbook into a lump it works.Would I buy it again or recommend it NO. |
| 41 | 41456 | 5 | 1 | 4 | 0.998 | 0.169 | 0.565 | 672 | I just got these yesterday, so I haven't had much of a chance to experiment with them, but what little I've done has me very hopeful. On low power, they had no problem transmitting across my apartment (a very modest feat perhaps, but one that another set of two-way radios claiming 'Up to 12 Miles' couldn't manage). The radios themselves will be tested more thoroughly soon. I'm mainly here right now to tell you about the accessories.First, though, a word about radio expectations. If you buy a radio that says "up to 18-mile Range" that means that under the most perfect conditions imaginable, the radio is capable of reaching that range. This doesn't mean that you will be able to speak to someone 18 miles away at the bottom of a mine shaft. When you really start getting into heavy brush or between large buildings, you're dealing with enough material to completely stop your signal. Personally, I bought these hoping for a mile or two in a hilly, wooded area. If they provide me that, I'll be ecstatic. If they provide only a half mile in the really terrible conditions in which I'll be using them, I'll be very pleased. This is to say that you must have reasonable expectations of your tools. Any 1-star review where the only thing the person says is "This radio only worked 5 miles through heavy urban sprawl" should be ignored. Take into account that these are radios, not satellite phones. If you want an 18 mile range in any conditions, you're not going to be able to hold it in your hand for less than $500. That said, on to the radios and all the little goodies that come with them.The boom mics that come with these radios are very nice. They have an in-line PTT button that works perfectly, and the earpiece is very clear. Even when someone is speaking very quietly, you can still hear them very well. Even when whispering very softly, the transmission comes through clearly. You don't even have to have the volume turned up very far. I would expect to pay at least $20-$25 each for a boom mic this nice (and believe me, I've spent plenty of time pricing them), so getting them as a "free" part of this set is awesome.The belt clips are very sturdy, and lock onto the radio so they won't go sliding off if you run around with them. The springs seem very nice, so I would imagine that you won't have any problem keeping them clipped to you. If you plan to do something extremely vigorous with them (like paintball, which is my plan) it wouldn't hurt to get something a little more robust. For the average use I think the belt clip would be perfect.The charging cradle works well. The radios are securely fit into it, meaning that if you have them in the cradle in your car, they won't pop out and go sliding around unless you hit some pretty serious bumps. That's another incredibly nice thing about this set. You get the wall charger, but you get a car charger as well, which I wouldn't even have thought of. When you run out of batteries and you're using a two-way radio, chances are good you're not just hanging out at home. Having the car charger keeps you from having to carry around a ton of extra batteries on a camping/hiking/paintballing trip. If you run out, drop the radio in the charger for an hour or two and you should be good to go for quite a while.As I've said previously, I haven't used this for very long at all, so I will be revising my review as I get more information. With what I've seen so far, though, these are a fantastic deal. |
| 42 | 61180 | 1 | 5 | 4 | -0.730 | 0.002 | 0.281 | 77 | Headphones arrived promptly and well packaged. No apparent damage. The headphone portion seems to be somewhat adequate for my purposes, but the mic is not usable at all. I have been advised by those who have listened to me speak over the mic that the sound has a wowing effect and seems to completely cut out at times. For my purpose (using it on Skype) it is completely worthless. I do not recommend purchase of this item. |
| 43 | 16358 | 1 | 5 | 4 | 0.727 | 0.478 | 0.814 | 33 | For some reason mine died after 6 months; I wish now I would have bought a 3 year plan warranty; when it was working it was great, easy to use, and relatively fast. |
| 44 | 81492 | 1 | 5 | 4 | 0.929 | 0.237 | 0.676 | 65 | I got this as a free add on to an order.Thought it was nice item, but second time I used it, the blue case just came apart.If I was shopping for a unit like this and bought this one, I would be highly erked.So if you are shopping for this item, do yourself a favor and pick a different and better one. |
| 45 | 16941 | 1 | 5 | 4 | 0.290 | 0.230 | -0.058 | 131 | yea it holds 520 discs but once you get it 1/3 of the way full good luck doing anything with it. the sleeves are junk and if turns upside down for even a second all your cds are out of the sleeve and loose in the wallet. Ontop of that once it gets a 1/3 full the junk plastic pieces that hold the pages together just fall out and your cd sleeves are EVERYWHERE loose! no matter how carful i am with it they just pop out and go everywhere. Any review that is not a one star is somone who reviewed it before then filled it all the way! i was gunna give it a 5 star when i got it too....then i filled it up.....JUNK! |
| 46 | 16637 | 1 | 5 | 4 | 0.642 | 0.243 | 0.591 | 164 | Purchased from a brick and mortar, where it was on sale. Got it home, plugged it into my Intel USB 3.0 port on my Asus z77 motherboard. Immediately, Windows 8.1 stated that the drive needed to be formatted. (Found it came efat). Tried to re-format three times. Twice got write errors and the third time, it reformatted to NTFS. Once I tried to write a file to it, I kept getting write errors. When trying to do a diagnostic on it...it kept failing. This in the first hour I owned it. No matter whether I reformatted it or what I did to it...it was a klunker. I haven't purchased a PNY drive in a very long time. Normally, they were pretty durable, but this drive leaves a lot of questions and a lot to be desired. Sorry...but if you are looking for a good USB 3.0 drive and want speed and reliability...this is NOT it! |
| 47 | 81415 | 1 | 5 | 4 | 0.948 | 0.168 | 0.668 | 202 | Again I realize why I don't buy Apple products...I have completely un-merged myself with Apple and it's proprietary products only to; in a moment of weakness; buy this product.That was a mistake. I use MusicBee with my Android products and it works great! When I bought this iPod for running with the armband, I had to reinstall iTunes to have the iPod to even be recognized as an mp3 player in my computer. Wow. The nerve of Apple. And of course their software is soooo proprietary that I can't use my media player's software to export my playlists and library in a language that iTunes can understand. This is not my opinion, this is fact. 3 days later of ripping my hair out, I realize why I left Apple in the first place. iTunes does not play well with others. I'm thinking of buying the "Aerb 4G Waterproof MP3 Music Player" now. It's only 4gb and I don't even know if musicbee will recognize it, but who cares. At least it's not an iPod. No thanks. If I ever think about buying another apple product somebody slap me lol |
| 48 | 41325 | 1 | 5 | 4 | 0.645 | 0.129 | 0.719 | 360 | Bought the unit on Feb 13. It had firmware v2.0 in it. As we all know the unit is practically unusable with that version. The website doesn't allow you to download update to their latest version (3.02) from versions 2.0 or lower. You have to have the version 3.00 to be able to do so. If you don't have a version 3.00 or higher, you have to order a free update disc, according to their website.I ordered this update through their website on the same day I bought the unit. A few days later I called Sony to check if my order went through (had a gut feeling). I found out it didn't. Oh well, I placed another request over the phone right away. The Sony rep told me the CD would be sent the next day.10 days later I called Sony again and asked if the CD was sent. They told me it was on back order (hello, CD on backorder?... is it manually assembly item or something?), and that it either was sent already or will be sent within the next few days. Hmmm... ok...Fast forward a week. I call them again. This time I get notified that my case is "pending"... Further investigation reveals that the update CD can't be sent to the customer and that the customer needs to send the GPS unit for update to Sony. I then asked, what the heck were all of you smoking the whole month, why nobody told me this? Why so many people got their updates on CD in the mail, and I suddenly can't? I got no answer, other than meaningless "it's our policy".So, the unit is going back to the store. If I knew it would go this way, I'd never bought it in the first place. At this time I don't think I'll ever buy any Sony product that requires any kind of software update. It's just ridiculous.Bottom line: don't buy this thing, save your nerves. There are dozens of better products for the money. |
| 49 | 41312 | 1 | 5 | 4 | 0.700 | 0.212 | 0.603 | 68 | It seemed like a good product, but after only a few days of using it, it broke. It kept my gaming labtop cool while it did work. This company need to learn how to ship the correct power supply to the correct order. I received a Asia power cord and I live in U.S.A. It could have been a good one with just a few fixes. |
--- End of Worst Predictions Table for Multidimensional --- --- Confidence vs. Performance Analysis for Multidimensional ---
| Confidence Level | Num Reviews | Accuracy | Close Acc (+/-1S) | MAE | |
|---|---|---|---|---|---|
| 0 | V.Low (0-.25) | 14236 | 0.188 | 0.728 | 1.159 |
| 1 | Low (.25-.5) | 17800 | 0.262 | 0.870 | 0.943 |
| 2 | Med (.5-.75) | 31608 | 0.572 | 0.923 | 0.549 |
| 3 | High (.75-.9) | 20854 | 0.767 | 0.944 | 0.316 |
| 4 | V.High (.9-1) | 1051 | 0.885 | 0.987 | 0.133 |
------------------------------------------------------
2025-06-21 00:30:23 - INFO - evaluate_model - Evaluation for Multidimensional complete. Evaluation for Multidimensional complete. 2025-06-21 00:30:23 - INFO - evaluate_models - Evaluating model: Rule-Based Enhanced 2025-06-21 00:30:23 - INFO - evaluate_model - Evaluating model: Rule-Based Enhanced (column: rule_based_stars)... Evaluating model: Rule-Based Enhanced... --- Rule-Based Enhanced Performance Metrics ---
| Metric | Value | |
|---|---|---|
| 0 | Accuracy (Exact) | 0.4295 |
| 1 | Accuracy (+/-1 Star) | 0.7443 |
| 2 | MAE | 0.9804 |
| 3 | RMSE | 1.4697 |
| 4 | F1 Score (Macro) | 0.2857 |
| 5 | F1 Score (Weighted) | 0.4550 |
| 6 | F1 Score (+/-1 Star) | 0.8534 |
| 7 | Precision (Macro) | 0.2906 |
| 8 | Recall (Macro) | 0.3021 |
| 9 | Cohen's Kappa | 0.1145 |
| 10 | Sample Size | 99,934 |
------------------------------------
2025-06-21 00:30:24 - INFO - save_worst_predictions_to_csv - Worst predictions CSV for Rule-Based Enhanced saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/worst_predictions_analysis/rule_based_enhanced_worst_predictions.csv --- Top 50 Worst Predictions for Model: Rule-Based Enhanced (Error >= 1) ---
| index | true_rating | predicted_rating | error | vader_compound | textblob_polarity | custom_score | word_count | text_preview | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 5 | 4 | 0.845 | 0.143 | 0.232 | 167 | What I recieved is not what is pictured here OR ADVERTIZED, but it is a vidio cable, and it does do the job I needed it for. If you were looking for a high quality cable do not buy this product. I recieved a cheap thin flimsy cable that is not gold plated or anything else they claim here. Bait and Switch? or a mistake in the order !!!!! . I do not know. I will attempt to contact the sender and find out. I contacted the seller and they told me to contact amazon.com so i did, and amazon.com was good enough to give me a $4.00 refund; which is good, because all this cable is woth is $2 to $3. I only needed it to run my wife's kareokee to the TV. If it was for any thing else I would have sent it back for a full refund. I'm surprised that this item is still listed as a high grade cable. |
| 1 | 40191 | 5 | 1 | 4 | -0.700 | 0.053 | -0.199 | 33 | This flash drive combines low price, sturdy / compact design, and high capacity. The only downside is that there isn't a cap holder on the drive, which means you will eventually lose it. |
| 2 | 94592 | 5 | 1 | 4 | -0.527 | -0.250 | -0.208 | 34 | These burnable cds were needed to appease someone who had a car cd player, did their task. Verbatim has failed to sell me sub-par media and this was no different. Would buy again. |
| 3 | 40350 | 1 | 5 | 4 | 0.827 | 0.304 | 0.659 | 99 | The SC-HC30 has great reviews on Amazon, so I figured that I would pick up the new SC-HC35 at Sears for $150. The unit looks great and has great functionality with pretty good sound for such a small unit. The downfall is a very high pitch hissing sound that is always produced except when a cd is spinning. It is similar to the noise that a tube tv makes when it is on, but a little lower frequency and much, much louder. I will be returning it today and looking for something else...perhaps the SC-HC30. |
| 4 | 40399 | 1 | 5 | 4 | 0.906 | 0.193 | 0.660 | 57 | Okay - I have had them for two years but damn - I wouldn't think that BOTH satellite speakers would come apart. One did and the second followed in three weeks. Super weak... I mean for the money - these look and sound GREAT! But now I have to get some Gorilla Glue and put them back together. Suckfest. |
| 5 | 40415 | 5 | 1 | 4 | -0.738 | 0.000 | -0.571 | 37 | No complaints! It's actually even simpler to use than I imagined. I work in a grad student office space that has been known to have trolling undergrad thieves. Locked up my widescreen monitor without a problem. |
| 6 | 94567 | 5 | 1 | 4 | 0.988 | 0.051 | 0.429 | 454 | For all of the reviewers that "WHINE about vignetting,onion bokeh,slow inaccurate focus,packaging AND comparing THIS LENS to other NON 24-70 lenses" for the love of all people who read these "SHUT UP !"OK I feel better now!On to the lens. Simply,I love it on my 7D yeh thats right. An OMG(!)cropped sensor.. gasp.. Those guys can zip it too.+ Color accuracy-check, tested on neutral setting Large jpeg, Raw irrelevant.+ Sharpness throughout zoom range AND apertures-check,tested on 0 sharpness setting.+ Bokeh smooth and gooey-check+ Lens build and functionality-check,note:slightly stiff rotational zoom. It's new !+ Low light performance-check,note:turn off VC and focus manually if you want toshoot faster. As with ANY lens stabilization it takes a fraction to engage.+ lens flare-very well controlled using included lens hood. Almost non-existent.+ Lens weight notes: Tis a bit heavy. Must be all that glass,metal and parts. DUH ! Itbalances well on my gripped,non gripped 7D with and w/o additional accessories .+ Focusing speed and accuracy while handheld-check,note: Not quite as fast as my Canon 70-2002.8 MarkII(nothing does) AND that is a different Beast.I find that when attuned to mybreathing rhythm and holding my breath(You do hold your breath when zoomed right?)It isbarely noticeable at all.You can compare this puppy with the Canon IS version.. OH wait ! no you can't cuz it doesn't exist. Furthermore; IF and WHEN Canon does make one it will undoubtedly be around 3 Grand or so and furtherfurthermore (I can do that) no other company makes one either in the 24-70 range.My lens serial # is in the 1700 by the way.OH, did I mention the weather sealing ? So far I have shot in sandy,windy and misty weather with no problems.Also a 6 YEAR LIMITED WARRANTY ! So don't feel too bad for the one star reviewer dude whos lense quit working.Sucks he got a bad unit BUT they should have replaced or fixed it.You can take this review or leave it BUT don't complain about it(keep it to yourself,nobody cares !). I am merely trying to be honest and help other people like me.SIDE NOTES: I recently shot a wedding and I didn't even pull out my 70-200 ! That was a first.I recommend this filter for protection and added moisture control .B+W 82mm Clear UV Haze with Multi-Resistant Coating (010M)I have attached some photos for your perusal(hand held too)I will update accordingly and if you have any questions let me know and I helps ya!Mako |
| 7 | 40510 | 5 | 1 | 4 | -0.665 | -0.086 | -0.567 | 101 | We're running 5 cameras about 400 feet from our auditorium to our control room. They're HDMI. We tried to do it with HDMI to CAT6 baluns. We bought 6 different baluns-- some cost $79, others $550. None worked. Even for shorter runs (200'), the baluns couldn't maintain 1080.Enter these Blackmagic HDSDI converters. Not only do they work (convert hdmi to HDSDI at the camera, send over RG6, enter the switch as HDSDI), but they seem to hold signal. Only once or twice have we had a failure of the signal, and then for only a few seconds. |
| 8 | 40520 | 5 | 1 | 4 | -0.569 | 0.071 | -0.156 | 23 | Item is a genuine Samsung product at a much lower price. Works just as expected and arrived very quickly. No cons to report. |
| 9 | 40553 | 1 | 5 | 4 | 0.421 | 0.150 | 0.306 | 54 | The picture and description is a lie. These aren't Panasonic batteries.These are no name knockoffs that don't even list a country of origin. How well they will hold a charge and how long they will last or even if they are safe to use in your camera is anyone's guess. |
| 10 | 40591 | 1 | 5 | 4 | 0.883 | 0.207 | 0.656 | 58 | this camera did not last more than a year and a half, good luck getting tech support that's not happening . they ask you to leave a number and they never call back .once in a while you will reach a guy and he sounds like you just woke him out of bed . buyer beware of this camera. |
| 11 | 40612 | 5 | 1 | 4 | 0.998 | 0.185 | 0.548 | 861 | I purchased this TomTom 720 after weeks of research - this IS our first GPS after all! I purchased one for my husband and I, plus one for my mother's companion as her gift to him. She told me whichever one I chose was good enough for her, and she trusted me. (no pressure there!)I originally purchased a TomTom XL 330S, but returned it because it did NOT have an SD card slot.This one DOES have an SD card slot (which is good for storing maps, poi's (points of interest), music files, etc.) so that you have the option of expanding the memory of the unit. This helps keep it from becoming a dinosaur too quickly.The unit is compact, has a bright screen, clear graphics, easy to use software (TomTom Home is a bit "old school" - I'll explain later in this review), and is easy to use period.I made sure to purchase additional accessories:4gb SD cardcarrying case (take it with you when you park your car - do NOT leave the GPS visible in your car or it will be stolen!!)screen protectors (matte)beanbag mount for the dashalternate mount kit (from TomTom)The day after I received it, I used it to navigate my way to a job interview. It tried to take me a VERY roundabout way out of my own development, so I just drove the way I wanted to. It recalculated (silently, thank you, instead of stating "re-calculating" like I have heard other machines do) quickly and continued coaching me on where to turn. Since then, I learned how to change the route BEFORE getting into the car so it doesn't do that, and so far I have been pretty successful.I had bad luck with the "neck" it comes with. It was too short to use with my beanbag mount (it actually made the device come out of the beanbag), so I ordered the "alternate" mount from the TomTom website. This works GREAT with the beanbag!I kept it plugged in to the cigarette lighter for the entire trip, just to be sure it wouldn't poop out on me - TomTom's are notorious for their short battery life - and it worked fine.It connected to my Palm Treo 700p as a bluetooth device with absolutely NO problem - actually, it asked ME if I wanted to connect. I didn't expect that. I wasn't even thinking of using bluetooth (I do NOT have a bluetooth headset, rather I have a wired headset for my cell phone), but now I like it. The only thing that is a little weird is that it WON'T connect to my cell phone when I am making an out-of-state call (go fig!).The updates were really easy to do, but the downloads were a little tedious. The "Home" software is a little "old school" in that once you find something you want to add to your device (such as points of interest) and download it to the device, you have to return to the very first page of the software and start searching all over again. It SHOULD have a "sticky" interface that could remember what page you left off on before the download started. This makes it VERY time consuming.I made sure to download the 2 free "computer" voices so the TomTom would speak the street names during navigation. It comes with one, but I really like "Susan" out of all of the computer voices.You get 12 months of mapshare downloads for no charge. At the end of that time you must purchase a full map upgrade to continue with free downloads for another 12 months. The full map upgrade averages between $80 to $120 depending on what you need. (BTW, this is comparable to the prices for map upgrades from Garmin, Mio and Magellan, but these companies do NOT allow for free downloads during the rest of the year.)Also, you can submit map changes to TomTom - that means if something has changed since they did the map, you get to add your info! Garmin, Mio and Magellan do NOT allow you to do this, either. What does this mean for you? The power to help yourself and others. Heck, why not? Maybe your correction will help someone from getting lost and in return maybe someone else's corrections will help YOU from getting lost!I purchased this unit (new) for $199 (that was my max budget). Since then it has jumped up to $300+. I guess that means it is in demand, but the newer models are around that price, so if you are in the $300 budget range I would research the newer TomTom's to see what they have to offer before buying this at $300.If you are new to TomTom's or even just GPS in general, make sure to check out the user groups at: forums dot gpsreview dot net. You can find help for any and every brand/model.That's all I can think of for now. If I forgot something I will re-post. Happy Travels! |
| 12 | 40632 | 5 | 1 | 4 | -0.321 | 0.159 | -0.322 | 123 | Probably the best antenna that I have tried. It's very inconspicuous - you can't see it. It picks up more channels than the traditional rabbit ears. The channels are very crisp - no static whatsoever. My home is a ranch and my TV is right in the middle of the house. I was worried that the TV location would hinder my ability to get channels. I have had no problems. With the rabbit ears, I had to be careful not to jostle them (which meant that I couldn't clean behind the TV) and, if the weather was bad, getting channels was iffy at best. I don't have any of those problems with this antenna. I would definitely purchase this product again. |
| 13 | 94544 | 5 | 1 | 4 | 0.996 | 0.148 | 0.333 | 600 | I had the DS213 (I believe) and had some issues with it. I thought it was the HDD but it was actually the unit itself. Thank God Amazon has good return policies and really try to take care of their returning customers.Any how... This DS412+ and the DS213 are a BIG change in specs.Going from a 1ghz to a 2.13 dual core made a heck of a difference.My biggest use is for data back up and data streaming.I stream MKV, MP4, M4V, AVI & ISO's from my NAS.I was using XBMC on the DS213 and tried Plex but did not like it.Well after sending the DS213 back and upgrading to this (figured why not when I purchased new HDD's thinking that would solve the issue) I figured I'd give Plex another shot.So I did and it's working 1K times better than on the other NAS.I also upgraded the memory last night (http://www.amazon.com/gp/product/B00723PEZO/ref=oh_details_o00_s00_i00?ie=UTF8&psc=1), It wasn't needed in reality but I wanted to have this a little more robust for when I'm streaming.Any how, the performance gain is just absolutely amazing.I'm able to stream 1MKV 1080p movie wireless to a Plex client and at the same time stream another AVI format (haven't tried two MKV's just out of time) to anoter Plex client via wireless connection as well. There is a hiccup in the beginning of the movie for about 2-3 seconds but after that it's smooth sailing the rest of the movie.All this with out using link aggregation, I may not need to do that but if I find more lag or get annoyed I may eventually change to static IP and make good use of that link aggregation.I'm running 2 volume's both @ RAID 0, Vol 1 is backing up to Vol 2 on a schedule.So the RAID 0 is def. helping with data READ (I tried RAID 0 on the DS213 and still had too much lag and load wait time).That is two 4TB WD green drives and 2 3TB WD black drives.There are a small amount of 3rd party apps available other than Plex but non really catch my eye so I have not used other apps (except the back up schedule app, can't remember the name).The fans run quiet even on cool mode (as apposed to quiet mode).RAM upgrade was rather easy after you get that case opened up.only thing I would have liked to see is a better heat sink for that cpu but I guess the air flow is enough for it.This is only my 2nd NAS so I don't have any thing else to compare it too but I will say this...............The DS213 had issues and was just SLOW and data transfer's would cut out half way through at times (usb 3.0).No problems with data transfer's on this device at all (usb 3.0)If you want to buy a NAS, go for a 4+ bay as my library grew exponentially quick and if you're into 30gb 1080p MKV movies like me you will need it!I'm a 16 year Tech and don't know every thing but I know enough to get around and do some damage.The bottom line is that this is the best $500+ I've ever spent on tech and not regretted it.This thing just works! |
| 14 | 40757 | 5 | 1 | 4 | -0.784 | 0.000 | -0.235 | 24 | You would have to just about drop your iPad from an airliner or slam it with a sledgehammer to damage it with this sleeve. |
| 15 | 40909 | 5 | 1 | 4 | -0.827 | 0.117 | -0.425 | 47 | I use these with my wireless headphones. It works as intended. As I recall it was a bit of a fuss to set up the first time, but that was Ubuntu's fault; the device drivers had no issue, but configuring Ubuntu's sound setup was confusing. |
| 16 | 94519 | 5 | 1 | 4 | -0.545 | 0.083 | -0.497 | 42 | This unit is a Real workhorse in my studio! Coupled with my external enclosure,it doubles as a backup, or a standard drive!I've owned this HDD for some time, (with NO Failures), i use this for continous A/V work. |
| 17 | 94516 | 5 | 1 | 4 | 0.852 | 0.100 | 0.218 | 175 | Like I said in the Title it was a rough start when I got this keyboard. Setup was super easy just plug and play. The problem stemmed from the fact that I went through 10 batteries at first before I could find some that would stay in there I don't know if it was the batteries or the keyboard. They were all regular copper-top Duracell batteries. It finally stoped that after a few weeks and I have had no farther problems out of the product.The keys are comfortable and natural feeling to type on. The numbers pad is a big plus for me.Pros: Comfortable use, easy setup, lots of features to help you navigate.cons: the one complaint I have is that the Fkeys are doubled as hot keys so sometimes it gets confused which one you want it to do. Especially when you are in documents if you are a hotkeyer like me sometimes you will have issues but it does have a lock button to turn off the hotkeys. |
| 18 | 40953 | 5 | 1 | 4 | -0.832 | -0.119 | -0.623 | 23 | Use it on my Roku to my Sony 55" TV and no problems at all, Little long but no problems from that. |
| 19 | 40954 | 1 | 5 | 4 | 0.778 | 0.169 | 0.617 | 39 | The item I received is not threaded properly. I received it this way,and it will not close. I have other RAM products, and they are great. I'll be ordering another one, and hopefully have a different result. |
| 20 | 40974 | 5 | 1 | 4 | 0.994 | 0.202 | 0.683 | 449 | I was considering buying a hardshell case for my MacBook Air (MBA) to protect it when I travel. However, I don't like having them on all the time, and I have found that snap-on cases tend to get damaged if you remove them too often. Not only that, but dirt trapped under them can easily scratch the aluminum shell of a computer.This seemed like a great alternative because it would protect it when I travel but be easily removable when I am not.This case was an EXCELLENT purchase. It is sleek and sophisticated, well designed, and not too heavy or cumbersome. The outside of the case, while faux-leather, feels very high quality. The pleather is soft to the touch and stitching is understated, clean, and a perfect design touch. The MBA slides in easily to the bottom and the screen attaches to the back with two rubber straps. When closed the case looks like a sleek attache and provides almost all around protection and looks very stylish. When using the MBA inside the case the palmrest is soft and provides a nice alternative to the cold feel of the aluminum chassis. The inside of the case is clad in a soft microfiber material which is a huge plus over plastic cases as it should prevent scratches to the MBA from trapped material. For the price, this case cant be beat. It is stylish and functional and the PERFECT compliment for anyone with a MacBook Air.While I don't find these particular downsides, there are a few notes on this case:1. The locking flap does flip in front of the touchpad when open; however it does not really get in the way and can easily be folded under to hide.2. The "stand" that pops out of the bottom is a good idea but pretty much useless. It's difficult to open, feels unstable, and the slightest push forward (such as resting your hands on the palmrest) causes it to collapse. I have no use for it anyway.3. The magnetic snap connector works great, but the button-hole is so shallow it doesn't always snap in. The magnet will hold it, but sometimes it slides around.4. The pleather cover tends to attract oil-prints.5. (This really isn't a downside as much as a comparison) The case is not enclosed all the way around, meaning when closed, the edges of the MBA are exposed to dirt, bumps, etc. The shell of the case sticks out far enough to prevent from most bumps, but it is not as enclosed as say a zipper sleeve.Overall I highly recommend this case. |
| 21 | 41001 | 1 | 5 | 4 | 0.814 | 0.158 | 0.776 | 141 | I really wanted to like this camera - the still picture quality was excellent- but unfortunately I couldn't get the video to display correctly on my PC's. I run Windows XP on both and maybe it is on my end- but after waiting for 3 weeks for an answer from Nikon's Tech Support (with no solution) I returned my Nikon S8100 for another brand. The HD video now runs fine on both my PC's using a different camera brand. Another downer was the flash popping up right where my left finger was holding the camera. I got used to it quickly- but whenever I handed the camera to someone else to take our picture the flash always got blocked down my their left finger- even after I warned them...I hope the camera works out for others!Cheers |
| 22 | 94506 | 5 | 1 | 4 | -0.599 | 0.175 | -0.145 | 76 | Without the drivers direct from asix, my system would not get a dhcp address. (Ubuntu Linux)After getting their driver, dhcp worked. Bit of a pain since there are kernel drivers - it would be nice if the kernel drivers worked with the product to avoid this step.-=-update Jan 18th: I upgraded to a 3.2.1 kernel, and 'it just worked'. No longer need external drivers/modules. (with newer kernels, this unit has worked solid) |
| 23 | 41046 | 1 | 5 | 4 | 0.649 | 0.231 | 0.741 | 96 | Came in a big box with two other items. It didn't have its own packaging so it was just thrown in there. In the process of shipping or packaging it got bent in the middle therefore it is unusable.Put it on anyways to determine the quality: The places that weren't bent went on fairly well. It is possible to push out the bubbles, just depending on how much work you want to put into to. If you get one that isn't bent, it is a good screen cover especially for the price. |
| 24 | 41182 | 5 | 1 | 4 | -0.586 | 0.125 | -0.151 | 22 | There is not much more you can ask for than that. I will be buying more for my airport boredom fighting collection. |
| 25 | 41191 | 1 | 5 | 4 | 0.867 | 0.391 | 0.486 | 85 | I guess if you have a ghetto computer, this would work. But if you have a nice system, good video card, nice LCD; then this will ruin your video. If you need an extension, try another cable. Or better yet, move the monitor closer to the computer:)I have a nice 20" LCD and a good video card, but this thing makes picture blurry and distorted. If you have an old junky system that has bad video anyway, then this would work fine for you. |
| 26 | 41202 | 1 | 5 | 4 | 0.866 | 0.258 | 0.345 | 67 | I don't know why anyone is giving this good reviews. This device has only one purpose: to measure temperature, and it cannot do that reliably, so why give it good reviews? Who cares if it's cheap if it can't even provide consistent measurements? It "gets stuck" all the time, producing erroneous readings. I used the padelt/temper-python software to read it. |
| 27 | 41244 | 1 | 5 | 4 | 0.788 | 0.162 | 0.269 | 37 | The map indicated I was in CA, when I live in CO. I tied updating the software,charging, rebooting (several times), but nothing worked. I returned the GPS for full credit, which was done promptly and efficiently. |
| 28 | 41266 | 1 | 5 | 4 | 0.896 | 0.186 | 0.656 | 82 | Perhaps some Panasonic 3-D TV's work with these, but the UT-50 series does not. At least mine does not. I spent several hours trying to get four different pairs to link to our new Panasonic 3D TV, but none worked. We picked up a pair of Panasonix 3D Glasses the same day, and they linked in under 5 seconds.Good luck. We are finding that Panasonic seems to develop their equipment to work best with their own branded accessories. |
| 29 | 41276 | 1 | 5 | 4 | 0.637 | 0.217 | 0.734 | 22 | Small screen not very reactive to changes below. I kayak; just did not work for me it's a toy at best |
| 30 | 41286 | 1 | 5 | 4 | 0.391 | 0.071 | 0.396 | 149 | I purchased this item to convert video tape (VHS) to DVD's. This item was hard to install and even when it did install the capture was jerky and very low quality at best. It did poorly from both the COAX (cable input) and the Component (yellow, red, white, RCA jacks) inputs and did not provide a reasonable capture for recording or editing.I returned the item to Amazon with no problem ( I love this place ), and got instead the Tv @nywhere Plus from MSI TV @nywhere Plus. It is an internal PCI card that must be installed inside your computer case, (sorry laptop users) but the capture quality is very good. The editor of the MSI is a bit weird and I will address that in my review of that product.Once again, I would avoid the Sabrent TV-USB20 USB 2.0 TV Tuner. Get something else. |
| 31 | 40279 | 5 | 1 | 4 | -0.624 | 0.183 | -0.501 | 50 | I have 10 of these fans. I also have the CPU fans in three different sizes. Out of all these fans I have had no failures and they are working in a very demanding environment. I have a box with 6 fans keeping a VM Ware box cool and quite. |
| 32 | 40157 | 1 | 5 | 4 | 0.827 | 0.269 | 0.802 | 47 | I think this might work if it were splitting to two identical devices, but it didn't work for me. one device had audio needs, the other didn't and maybe thats why... don't know for sure... good luck if you chance it. price was low. |
| 33 | 94465 | 1 | 5 | 4 | 0.821 | -0.025 | -0.109 | 68 | Software did not install properly so I downloaded it from their web site. That only partially worked. I have never had a problem w/ a pug & play device on the computer I attempted to install it on. Their customer support is a joke. I was on hold twice for 20 mins and finally gave up and returned the product. I will never purchase anything from this manufacturer again. |
| 34 | 40138 | 5 | 1 | 4 | -0.542 | -0.167 | -0.546 | 35 | i seen some bad reviews on this model....don't believe it.I will be buying another or newer model real soon.even does the regular DVDs to hd format on my tvAwesome DVD Player |
| 35 | 39221 | 1 | 5 | 4 | 0.946 | 0.116 | 0.494 | 196 | In my opinion, it's not a bad screen protector for the new iPad 3 3rd Generation because I've purchased from this company before when I needed a new screen protector for my iPhone 4s, but what it does is causes the screen to lose it's resolution quality. Put it this way, if you apply one half of the screen protector to the screen and compare the other side that does not have the screen protector, you will notice how much of a difference in resolution quality is lost. You'll see a slight blur and little itty bitty dots that might not annoy some people, but for those who have an eye for high quality items, you'll certainly notice the difference. Save your money and just buy a jacket that protects the front and back of the iPad and you should be good to go. You just need to clean the screen every so often and wash your hands before you use it each time. I already opened the package and tried applying it so I can't return it since I didn't buy it from Amazon...only the iPad 3. |
| 36 | 39301 | 5 | 1 | 4 | -0.948 | -0.167 | -0.275 | 38 | I use these when I shoot Runway shows because they transfer the images from the camera processor to the card SO FREAKING FAST. Your SD cards will seem sluggish and inferior after regular use of this bad boy. |
| 37 | 39335 | 5 | 1 | 4 | -0.773 | 0.446 | 0.207 | 108 | I was looking for the coolest mouse i can find...Mamba, rat 7 were the competitors.It was a birthday present(i didnt know what to get and i already have the BMW) I didnt care about the price.after trying my friends mamba it was not even close to this thing.I havent tried the rat but on reviews it didnt do as good as this.I was scared of the battery life but its great... never ran out but i keep it mostly on the wire.The usb cord is a bit stiff for keeping the mouse on it but i disconnect when i need precision. |
| 38 | 39350 | 1 | 5 | 4 | 0.922 | 0.113 | 0.580 | 248 | I thought at first this was the ba-all-end-all of remotes - it controls lots of different devices, is easy to program via your laptop, the color LCD display which changes based on function, rechargeable batteries w/ cradle, remote turns on when you move it, backlit keys, etc. But I can't recommend the 880 at all.The button design is very cool looking but very difficult to use in a darken room. The volume up/down and channel up/down look nice in their curved placement but can't be easily found by your fingers in real life use. Same is true for PLAY and PAUSE buttons; they don't stand out in any way for your fingers to find. Also the ACTIVITIES button, which is used to switch functions on the LCD, is as flat as can be and hard to locate. So what good is a remote if you can't find the volume UP/DOWN and PLAY/PAUSE easily in a darkened room? The program via a PC concept that Logitech has created is super, but they really goofed on the 880 layout of the keys and they are back to using different designs on their other models. Also, the battery charger/cradle is very unreliable on the 880 and we had to get a new one. So the design goals for the 880 features/function was right on by Logitech, but the button design and execution make this specific model very disappointing. |
| 39 | 39357 | 5 | 1 | 4 | -0.660 | 0.038 | -0.190 | 182 | I was just playing with the unit so that I could add some more items to this review. Things that the mouse will work well on: My shirt, my wood desk, the side of my printer, a calkboard, the wall, the carpet. It does not work well on my hair.I believe I am on my 3rd workday (that means 7+ hours of use per day) without a recharge and the mouse still does not need to be charged. I'm able to use both the mouse and keyboard up to a distance of about 10 feet away from the base.For those of you concerned that you may need any extra items, you won't. The package comes with everything you need to get up and running. When I bought the Duo I was a little worried that I'd need a separate radio transmitter card and that fear was unfounded. The radio reciever is included and it just plugs right into where your wired mouse and keyboard plug in.I think it is hard to go wrong with this product. |
| 40 | 39393 | 5 | 1 | 4 | -0.636 | 0.125 | -0.516 | 29 | They charge the iPad 3 and iPhone 5.I've got 3 of them and got no problem so far! And they're the cheapest that I've found. |
| 41 | 94706 | 5 | 1 | 4 | -0.599 | 0.025 | -0.525 | 23 | Using it to keep my iPhone from dying on long bike rides (I use it as a cycle-computer). No problems so far. |
| 42 | 39551 | 1 | 5 | 4 | -0.995 | 0.015 | -0.121 | 626 | Spammer Alert!!!! DO NOT Buy!!! Will flood you with emails demanding positive Amazon reviews. Stuff does not work without great effort. Blank driver disk, obsolete power connection.I ordered this as my second attempt to get some USB 3.0 ports on my new Dell XPS computer. My first attempt was uSpeed's 8 port hub. That unit arrived dead and I had to return it.This unit is installed, but not completely. It also does not work.It seems modern Dell computers do not use the obsolete (?) molex 4 pin power connector. Dell's use either some kind of 6-pin thing or some extra SATA power connectors. So guess what, no power to the card.But I figured, "Hey, my USB 3.0 devices and most of my 2.0 do not need power," like my printers, separately power hard disk, and Logitech Harmony 650 remote. No dice. Nothing works. Yet another inert piece of hardware from uSpeed. However, I cannot be sure if there is anything wrong with it.While I realize that all things electrical work better when plugged in, I will have to wait until I receive my collection of molex extension cables and SATA to molex adapters to see if I can actually turn this pile of plastic, silicon and metal into something functional. Living in a rural area, there are no computer stores I can go to to get the parts.But it may be even more complicated than that. You see, the "CD" that came with it, one of those insultingly sill 2.5 inch pseudo disks, you know, the kind that you have insert and eject a minimum of 37 times (NOT an exaggeration) in order to get it to seat properly in the DVD tray, was BLANK. Nothing on it at all. Windows 7 prompted me if I wanted to burn files to it.Yet another fine example of Chinese quality control.Windows 7 does not like the card out of the box and insists that it cannot find the driver online. So I go online, which is a real trick since there is no decent web site provided on the little card, to see if I can find a driver. Googling the model numbers only got me back to Amazon. After some hunting and some blind attempts at trying a domain, I finally found uSpeed's domain. It is [...] (there is no "m" at the end, just ".co") There I find no products with the model number or part number. But I did find a page buried for a device that looked remarkably similar and got the driver install software there. I ran it and Windows stopped complaining.But the USB ports still do not work at all without power.I will provide an update after I receive my daisy chain of power connectors and adapters. My MADE IN AMERICA cables, that is.As a scion of Chinese ingenuity and quality, my experience with uSpeed, I have concluded that I WILL NOT ever knowingly buy a uSpeed product again.UPDATE:I got my made in USA cables. Finally, the device works. However, it works at 2.0 speeds, verified against USB hard drives which are USB 3.0 rated and compatible with 2.0.uSpeed is not a good manufacturer. Aside from the difficulties with their devices, they have flooded me with emails asking for *positive* reviews on Amazon. I want them to go away, but every other day since I made my first (ill-advised) uSpeed purchase. I am sick of their unsolicited emails.Yep, that is what you expect from dishonest Chinese makers who make stuff that is awful but insist you give them five stars for stuff that barely works.STAY AWAY!!!!!!!!!!!!!!!!!!!!! |
| 43 | 39570 | 1 | 5 | 4 | 0.824 | 0.000 | 0.247 | 59 | What a crock....now I know why I never bought into the Apple Culture. Camera is a joke....no flash??!! Printing the pictures looks like poo-poo on paper. What's the point?? This is Apple's way of reeling you in and bam!!I returned my iPod the next day. Hopefully one day someone will challenge these dolts. |
| 44 | 39578 | 5 | 1 | 4 | -0.557 | 0.050 | -0.128 | 121 | These are simple and quality. If that is what you want, take a look at the price tag and then add them to your cart.I purchased two pair of these phones for my children (5 and 2) knowing full-well that they will be broken, taped, glued, and abused some more. With the quality and comfort of them and at about $5 per unit, I don't mind if I buy twenty over the next few years.For myself, I purchased RP-HT46-S. This unit is essentially identical except it folds up and includes an in-line volume adjustment for more than double the price. Should I need to replace it though, I will do so with RP-HT21. |
| 45 | 39583 | 5 | 1 | 4 | -0.586 | -0.062 | -0.338 | 21 | I WAS BURNING MY CAKE IN THE OVEN. THIS ALARM WENT OFF TEN MINUTES SOONER THEN THE OTHER TYPE OF ALARM. |
| 46 | 39680 | 1 | 5 | 4 | 0.440 | 0.231 | 0.328 | 46 | At first it appeared this device was the perfect solution to avoid running HDMI cable from one end if the house to the other. However, after a few days it stopped working. The day after I contacted customer service I received the replacement, which worked intermittently. |
| 47 | 39682 | 5 | 1 | 4 | -0.314 | 0.061 | -0.582 | 117 | I purchased this suppressor because our refrigerator has required a new defrost control card twice in 6 years. Each time the service technician comes out and finds the defrost control card has expired. This is normal for this refrigerator, ( a Maytag double door (side by side), according to 2 different service technications. We haven't had the surge suppressor long enough to determine if this will solve the problem.I've had electrical surges causing occasional computer failures at work and a surge suppresser always solved the problem. All computers were always connected to the power lines thru a suppresser after that. This item was the brand we used and it never failed to protect the computers. |
| 48 | 39721 | 5 | 1 | 4 | -0.576 | -0.126 | 0.002 | 101 | I bought this amp used through amazon warehouse deals and let me tell u what this amp kicks A$$!!!! I have never had a amp hit this hard b-4 I have it down to 1 ohm on 2 15's in my 4dr blazer and this amp is very small it fools at first glance I would recommend this thing to everybody if u want to drop bass!!! I had a old fosgate amp in it and it is 2x the size and not even half of this thing. For the price of 200 dollars I might buy another one |
| 49 | 39728 | 1 | 5 | 4 | 0.856 | 0.149 | 0.436 | 199 | I have applied many screen protectors, from cell phones, portable gaming devices, drawing tablets, and other devices and I gave this screen protector product a 1 out of 5 stars, because:1) Although the adhesive is only on the outer edge, I did not know and was not notified on the fact that the inside of the screen protector did not have a plastic layer, thus leaving my own fingerprints immediately when I opened the package.2) It attracted a lot of dust while applying, making it difficult to have a nice clean screen protector.3) Once the screen protector was applied, my fingerprints are highly noticeable when the screen is off. Once the screen of the Macbook Pro is on, you cannot see the fingerprints anymore, but the screen protector darkened the screen (similar to a tint) and gave the screen a filter like look. (If you understand photography, I mean that the screen protector gave my screen "noise", meaning the fuzzy/grainy like look.)I rather not go through the hassle of possibly returning this item, but I will remember to not buy this type of product or buy from this seller (TOP CASE) again. |
--- End of Worst Predictions Table for Rule-Based Enhanced --- --- Confidence vs. Performance Analysis for Rule-Based Enhanced ---
| Confidence Level | Num Reviews | Accuracy | Close Acc (+/-1S) | MAE | |
|---|---|---|---|---|---|
| 0 | V.Low (0-.25) | 14236 | 0.216 | 0.653 | 1.255 |
| 1 | Low (.25-.5) | 17800 | 0.399 | 0.727 | 1.029 |
| 2 | Med (.5-.75) | 31608 | 0.465 | 0.816 | 0.840 |
| 3 | High (.75-.9) | 20854 | 0.666 | 0.858 | 0.573 |
| 4 | V.High (.9-1) | 1051 | 0.838 | 0.937 | 0.276 |
------------------------------------------------------
2025-06-21 00:30:24 - INFO - evaluate_model - Evaluation for Rule-Based Enhanced complete. Evaluation for Rule-Based Enhanced complete. 2025-06-21 00:30:24 - INFO - evaluate_models - Evaluating model: Hybrid Weighted 2025-06-21 00:30:24 - INFO - evaluate_model - Evaluating model: Hybrid Weighted (column: hybrid_stars)... Evaluating model: Hybrid Weighted... --- Hybrid Weighted Performance Metrics ---
| Metric | Value | |
|---|---|---|
| 0 | Accuracy (Exact) | 0.4599 |
| 1 | Accuracy (+/-1 Star) | 0.8194 |
| 2 | MAE | 0.8136 |
| 3 | RMSE | 1.2581 |
| 4 | F1 Score (Macro) | 0.3089 |
| 5 | F1 Score (Weighted) | 0.4785 |
| 6 | F1 Score (+/-1 Star) | 0.9007 |
| 7 | Precision (Macro) | 0.3202 |
| 8 | Recall (Macro) | 0.3103 |
| 9 | Cohen's Kappa | 0.1360 |
| 10 | Sample Size | 99,934 |
------------------------------------
2025-06-21 00:30:25 - INFO - save_worst_predictions_to_csv - Worst predictions CSV for Hybrid Weighted saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/worst_predictions_analysis/hybrid_weighted_worst_predictions.csv --- Top 50 Worst Predictions for Model: Hybrid Weighted (Error >= 1) ---
| index | true_rating | predicted_rating | error | vader_compound | textblob_polarity | custom_score | word_count | text_preview | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 1 | 5 | 4 | 0.845 | 0.143 | 0.232 | 167 | What I recieved is not what is pictured here OR ADVERTIZED, but it is a vidio cable, and it does do the job I needed it for. If you were looking for a high quality cable do not buy this product. I recieved a cheap thin flimsy cable that is not gold plated or anything else they claim here. Bait and Switch? or a mistake in the order !!!!! . I do not know. I will attempt to contact the sender and find out. I contacted the seller and they told me to contact amazon.com so i did, and amazon.com was good enough to give me a $4.00 refund; which is good, because all this cable is woth is $2 to $3. I only needed it to run my wife's kareokee to the TV. If it was for any thing else I would have sent it back for a full refund. I'm surprised that this item is still listed as a high grade cable. |
| 1 | 71277 | 5 | 1 | 4 | -0.819 | 0.062 | -0.125 | 17 | Had the case for over a year now and absolutely no problems! No cracks, nothing. VERY DURABLE! |
| 2 | 28678 | 1 | 5 | 4 | 0.617 | 0.095 | 0.371 | 109 | In the last five years, Sony leads the industry in customer complaints and this product is in line with Sony's poor performance. The distortion level is so acute that it's impossible to enjoy a cassette, the CD does only slightly better. One wonders how anybody who likes music could be satisfied with this product. However, it is good for listening to news, and talk radio. The AM and FM reception is really good. But this one's not for anyone who likes music, even a child will be unhappy with it. Plus, the buttons are so poorly made that they fall off if you aren't careful. |
| 3 | 71412 | 1 | 5 | 4 | 0.984 | 0.416 | 0.761 | 195 | Bought both the PS4 and Xbox 1 for my kids - and am glad I did. The PS4 took hours to even let us signon and update - then ran for about an hour before going into a series of freezes, hard resets, etc. After an hour on hold - I spoke to a very nice rep, who did his best to get us working But to no avail. So now am waiting on a mail-back-to-Sony box and about a week or two to get a replacement sent to us. Would have returned via Amazon, but also on backorder there so hoping this is the fastest way to get my kids a toy they can play with within a couple of weeks after the holiday.Knew buying a new system before they had the kinks out could be a problem... counted on Sony to do a better quality control job. Sad.On a related note - the XBox runs like a champ, graphics are great - and updated quick and smooth. So - while your mileage may vary - in this instance I've got a 5 star Xbox, and a 1 star (would be zero) PS4 Xmas experience. |
| 4 | 28743 | 1 | 5 | 4 | 0.886 | -0.007 | 0.414 | 167 | I purchased these a month ago, and they worked alright except for an occasional misfire. But then also here on Amazon I found the same item for half the price and it shipped with Prime. Since I was going to order 4 instead of the 2 that come with the set here anyway, I returned this CowboyStudio trigger and got two orders of the 4 channel wireless trigger that was half the price. The hilarious thing is that it is literally the identical item. It even has the model number labeled as NPT-04. I don't know where these things all come from in China, but they're just making these things, putting a different brand label on each one, and charging different prices for each brand. The exact item name to search for here is "4 Channels Wireless/ Radio Flash Trigger Set With 2 Receivers".I hope my review saves everyone half the price of this thing by buying the other identical item listed here. |
| 5 | 71364 | 1 | 5 | 4 | 0.421 | 0.352 | 0.447 | 94 | I tried this in my workshop transmitting an FM signal to my ear protector/FM receiver head set. I have a pretty good quality head set but this just didn't send a strong enought signal for even 5-10 feet away. It could have been that I have too many ducts, motors and other metal objects in my woodworking shop which interfere. I had to return the unit...sadly, because I wanted the functionality. FYI, I haven't as yet found ANY transmitter that will work. I have given up on my pursuit. |
| 6 | 71363 | 1 | 5 | 4 | 0.926 | 0.121 | 0.802 | 110 | Unfortunately, I have recommended this battery to a number of friends over the past few months. I purchased this battery from Amazon in June of 2010 (seller was Sound Around, inc at the time). It originally held a 4 hour charge, but after just 7 months, that is down to only an hour or so.The moral is, once again, "You get what you pay for". You would be far better off buying a decent battery from Other World Computing, even though they are twice the price. Those batteries should last for many years.Service from Amazon and Laptopmate has been great, as always! Just don't buy these batteries. |
| 7 | 28835 | 1 | 5 | 4 | 0.875 | 0.198 | 0.452 | 55 | This is the most illogical piece of gear I've got in my arsenal by far. It loads from THE BOTTOM! Who'd uh thunk it. Little feller is so frail too. Hope I don't scare it. Woof :) Strange menu system makes for interesting operation attempts. Meets my basic needs in a miniDV though. |
| 8 | 71326 | 5 | 1 | 4 | 0.000 | -0.625 | -0.125 | 48 | These are identical to those I usually buy from Radio Shack. If memory serves, theirs are maybe 4 or 8 to a pack and cost just less that $5. For $12 including delivery I got a lifetime supply for me, my family and everyone I know. Screamin' deal!!!!!!!!!!!!!!!!!!! |
| 9 | 71267 | 5 | 1 | 4 | -0.622 | 0.087 | 0.181 | 79 | And so far so good. Plenty of connections. Using in my secondary machine now.I sent my 790gx to ASUS as it died, but they sent me back one that also didn't work. So I bought this. I really don't care for ASUS anymore, so this will probably be my last ASUS buy. Didn't get my rebate from them, and wasted lots of money on a motherboard, and got basically nothing out of it. Thanks ASUS. |
| 10 | 28653 | 5 | 1 | 4 | -0.327 | -0.148 | -0.628 | 127 | Anyone who is reading the review on this is serious about PC TV!What I know:- setup is confusing but manageable- Stars TV is encrypted (via comcast) and can only be replayed on the computer it was recorded on (why do they waste our time with this encryption?)- everything else records unencrypted (that I watch)- entitlement will confuse the cable guy in all cases but the software is robust- install the firmware update before you begin, otherwise it won't work- after the CableCARD is "entitled" you'll need to read the instructions carefully about setting up some security nonsense in Windows Media center or it will only sorta work- I tried to contact support but could find no phone number and my email was never returned |
| 11 | 28873 | 1 | 5 | 4 | 0.736 | 0.529 | 0.285 | 50 | What can you say. You wait for the item in the mail it arrives then it works so you copy data to it. You can't be more displeased when it just doesn't work. Amazon did the right thing and issued a refund bought San disk which works great. |
| 12 | 28929 | 5 | 1 | 4 | -0.911 | 0.327 | -0.233 | 104 | Have had these for some time now. Bought a pair for my wife this xmas. Noise reduction is good, not as good as powered ones, but they do get rid of junk noise around you. I use these in the gym, and it cuts out the distracting people around me that are just chatting instead of working out.I said these are tough, they are. Tonight, I forgot them in my gym shorts and they went through a full wash cyle and a full dryer cycle on medium temperature. I thought they were dead, plugged them in and they sound perfect!!!Worth every penny!!! |
| 13 | 71158 | 1 | 5 | 4 | 0.729 | 0.055 | 0.230 | 263 | It's a shame that I didn't get the chance to use the Roku 3. I was excited to use it after reading some of the reviews. Although it seemed to lack playback of a variety of different file types, I thought I would give it a try. Before I bought the item, I read that I was going to have to create an account and add payment info, but if I contact customer service, I could get around that. I can't think of another piece of home electronics that I own that I had to create an account for and add payment info for. My gripe is that I have no intention of using pay services with the Roku, and I shouldn't have to create an account at all and add payment info. So my Roku arrives, I get to the step where I need to create and account and I logon to my computer to do that. I tried to open a chat session with customer service and waited 40 minutes while I did other things. As soon as it is my turn, the service rep closes the chat session. So I called them on the phone and waited 30 minutes and gave up on them. I tried to start a chat with service the next day and waited over an hour and the same thing happened - Ray, the customer service guy closed my session immediately. Thanks, buddy! It just shouldn't be this hard to hook something up and start streaming some movies from my media center. |
| 14 | 71151 | 5 | 1 | 4 | -0.735 | 0.100 | -0.551 | 30 | 32G for external memory for my tablet. Class 10 for the speed (don't really see a difference in this application, but it does matter in a camera). No problems. |
| 15 | 29109 | 5 | 1 | 4 | -0.791 | -0.079 | -0.253 | 45 | There is not a lot to say about this item other than it worked "just fine" for me. If you are running out of HDMI ports, this is a quick and dirty (less expensive) way to go. No fuss - no mess just connect and go. |
| 16 | 71097 | 1 | 5 | 4 | 0.883 | 0.850 | 0.935 | 29 | Firestik does a great job advertising their garbage. Don't believe it! Do youself a favor and buy an Everhardt SOTT antenna if you want good quality and performance. |
| 17 | 71042 | 5 | 1 | 4 | 0.441 | 0.086 | 0.649 | 28 | It worked for me at least, not sure about the 1 star reviewers. The process was very fast and easy through Amazon. Got the code right after purchase. |
| 18 | 71503 | 5 | 1 | 4 | -0.912 | 0.179 | -0.121 | 347 | If your battery is not of the sealed, "Maintenance Free", type with both plates lead-calcium, the actual state of charge may be higher than indicated on the BatteryMole. If your battery has the filler-caps that are easily pried off for adding water, and the battery was not purchased in one of the hotter southwestern states, it probably has one plate lead-calcium and the other lead-antimony (this type of battery is sometimes called "Low Maintenance". It has a higher state of charge for a given voltage. In this case a good approximation to the actual state of charge is achieved by adding 10 to any reading of 60 or above. For example if the BatteryMole says 70% the actual state of charge is about 80%.The BatteryMole is much more useful than a voltmeter because the voltage for state of charge changes with temperature. With a voltmeter, you would have to find a table and look up the state of charge for the voltage reading and battery temperature. The BatteryMole does the conversion for you.Over the 11 months I have had the BatteryMole in one of my cars it has been very helpful in the following ways:1. Warned when it detected cranking voltage lower than normal due to a battery clamp problem following maintenance.2. Allowed me to determine that state of charge of the battery was lower than optimum when all my driving was only short trips.3. Allowed me to determine that the state of charge of the battery was lower than optimum after installing a new battery until I fully charged it manually.4. Allowed me to track the death of a 6-year old battery, with the first symptom being low state of charge unless I charged it manually, and finally a low cranking voltage alarm when the voltage dropped below 6.4V. I replaced the battery at that time before it caused a problem.I modified my car to keep power on the power outlet at all times, so that I could use the cranking voltage feature. |
| 19 | 97752 | 5 | 1 | 4 | -0.628 | -0.222 | -0.583 | 41 | Doesn't fall out the socket like my other sync cables, and cost half the price too! Enen if you don't need it, it never hurts to have a few for backups. One bad cable can completely ruin a photoshoot! |
| 20 | 73522 | 1 | 5 | 4 | 0.997 | 0.142 | 0.652 | 270 | I am a proud own of the Harmony 900 remote and I love it. I've had several URC remotes that were a pain in the butt to program but the Harmony line is quick and easy. My house consists of Mac computers only, so using the web based programming worked fine regardless of your computer.I recently returned this remote for the Harmony One. Though it's about triple the price of this remote it outperforms it in almost every way. I had major issues with this remote turning on all of my components properly and very, very often had to hit the help button so that the remote would correct itself. The screen itself is not touchscreen and really didn't do much in terms of controlling my components. I found the hard buttons were really the only buttons I used.I can't comment on how long the battery lasted as I returned the remote in less than a week and purchased the Harmony One. I can tell you that my Harmony 900 battery would last weeks. I rarely put the remote on the charger and it was always full.If you have the $ to spend, the Harmony One is night/day better than this remote. However, if $50 is the most you want to spend, perhaps this remote will do you justice. I just didn't want to curse myself for not getting a better remote for my setup.I do find it funny that other reviewers think that this remote is as good or better than the Harmony One. Whatever helps them sleep at night.... |
| 21 | 28285 | 5 | 1 | 4 | -0.746 | -0.014 | -0.237 | 97 | I was skeptical about how great the iPod touch really was, but once I bought one I discovered that it could do just about anything I needed it to. I went to a Starbucks with a netbook and my iPod, and not once did I turn on the netbook. I could e-mail, browse the web, listen to music, and do just about anything I needed to without a full-scale computer. I was genuinely shocked at how useful it was.My only complaint would be that the camera is really crappy compared to any other iPhone. |
| 22 | 71945 | 1 | 5 | 4 | 0.764 | -0.196 | -0.010 | 110 | The instruction booklet is difficult to decipher and this buyer was unable to hook up this unit. The booklet uses terms without definitions. After trying for a few hours to make this gizmo work I packed it up and returned it. One of the after-thoughts, however, this unit blocks the sensors on my flat screen so this gizmo wouldn't have worked anyhow. Give it a try if you're really into gadgets but don't be disappointed if this thing won't work. I suggest before you buy to go on line and look at the PDF manual - if it makes sense to you, you're home free. |
| 23 | 28008 | 1 | 5 | 4 | 0.838 | 0.088 | 0.259 | 83 | This product is neat in the sense that you can access your files from afar and upload stuff as a personal cloud storage device but the downside is it uses an Ethernet connection to connect to your gateway so it interferes with the signal; it causes a lot of dropped connections. The second huge issue is that this takes so long to upload to. One document takes over a minute, so if you were taking advantage of the 2TB of space...good luck. |
| 24 | 71941 | 5 | 1 | 4 | -0.631 | 0.250 | -0.289 | 104 | I bought this specifically for my 4.2U Wii and a 250 GB Sata drive. Works perfectly. I needed one with a physical power button. The activity light in front is the logo, which is fine by me. It's solid on when idle, blinks with activity.Drive has some play front to back when plugged in, but not enough to make me worry about damage to the connector. The overall size is large which gives it a lot of stability.Cons, it's large. But what 3.5" drive docking station isn't? And most of all it works reliably with my Wii. |
| 25 | 71890 | 1 | 5 | 4 | 0.260 | 0.110 | 0.317 | 213 | I was really looking forward to receiving this webcam based on the reviews here, and because of the specs. Also, I was lucky enough to grab it during a temporary price drop, making it a huge bargain. However, the image quality is so poor, it isn't worth even the relatively low price I paid.The image on the PC it is hooked up to is grainy and fuzzy. The only way I could get the picture to look half way decent on its "home" PC was within one of the bazillion ArcSoft application the CD installs. The video on the other end of Skype calls is close to unwatchable. And, there is no way to adjust the resolution within the driver's webcam settings.Who uses these useless applications anyway? It is a WEB cam. Its main purpose is for video communications across the WEB. So, the only software necessary is the driver software. AND, that driver software needs to be able to utilize the full resolution and capability of the webcam.Unfortunately, this piece o crap is going back to Amazon. I'll just have to get another Creative Optia or perhaps try a Logitech 9000 which seems to get great reviews. (Then again, this one got some good ones, too.) |
| 26 | 28196 | 1 | 5 | 4 | 0.908 | 0.078 | 0.488 | 207 | I was intitially pleased to have bought this TV. But after a year as soon as the warantee expired, the TV started giving black box shaded pictures. The black squares appear randomly. It's very annoying. Samsung didn't do anything,stated that it's out of warantee. The technicians are charging a whopping amount for repair. And the replacement parts are expensive as well. There is absolutely no reliability and durability of this TV. I will never buy any Samsung products again.11/29/2010I was surprized to read that one of the reviewers was successful to have Samsung replace their TV with a newer model. Perhaps I will try calling them again. I bought this TV on BlackFriaday of 2007. I have spent countless hours on the web looking for a solution to the black squares. But, seems that nonone has found a fix, yet. So, I am just waiting for another year to replace this set with a Sony. I adivise the buyers to totally ignore Samsung brand. I have lost my trust and I am sure there are many more. I sure am hoping that some day someone will file a classaction lawsuit, and then I can recover some of my lost money! |
| 27 | 28219 | 5 | 1 | 4 | -0.494 | 0.000 | -0.298 | 270 | Mac Pro 2010, running Mavericks OS 10.9.2Wanted to backup a 3tb drive from my 3 year old Rosewill RX-DU300 dock to another 3tb drive, so I needed a second docking station. I figures 3tb hdd have been out for years now, and I don't see why any docking station should not be able to recognize them.After reading the reviews I first bough the “Plugable USB 3.0/2.0 SATA Hard Drive Docking Station (ASMedia Chipset; UASP and 3TB+ Support)" and it did not work for me. I then bought the "Sabrent USB 3.0 to SATA External Hard Drive Docking Station for 2.5 or 3.5in HDD, SSD [4TB Support] (DS-UBLK) by Sabrent" Slick looking dock but also did not read 3tb drives ether. tested with 3tb Toshiba, and Seagate HDDs.Finally I just spent the extra 5 dollars (Was trying to get them on sale) and purchased my second "Rosewill 2.5-Inch and 3.5-Inch USB 3.0 Hard Drive Docking RX-DU300" would you believe i? It just plugged in and worked right out of the box, as it should because that is what it stated it did in the first place.One thing I must point out here is that I have been buying Rosewill products (usually at Amazon/NewEgg) for years now and have never been let down, or disappointed be them. I must stress that this company is quite simply a computer guys best friend.Hope this helps someone from returns, wasting time, and trips to the UPS store. |
| 28 | 28276 | 5 | 1 | 4 | -0.603 | -0.024 | -0.186 | 89 | The cover the cords and hold them in place. It has really made the mess beside my desk much less of a mess. One hint to users, do not put it too close to a piece of trim such as the baseboard and chair rail. Leave an 1/8 of an inch to make opening and closing a bit easier. If you want it snug against the trim, put the cords in first. I did not and it was a bit of a struggle to get it closed up. |
| 29 | 28353 | 5 | 1 | 4 | -0.866 | 0.035 | 0.014 | 337 | ... For a 1000 watt 12VDC system.Fuses for 12VDC can not have much drop across the fuse because the battery (fully charged) is 12.8 VDC and the battery is considered "drained" at 10.5 VDC. That's only 2.3 V of drop in your entire system including wires, connectors, fuses, and the battery. It's better if you have an alternator and engine running but they'll give you 124A or so while the battery can deliver 1000 amps. At 1000 watts constant power you will pull 115 Amps - that leaves you with 0.02 ohms for your entire wiring system to run 1000W with a charged battery and 2.3 V drop. If your battery is running low, consider it more like 0.01 ohms of max system loss. If your engine is on up at 14VDC you get some slack so long as your alternator <-> battery link is good.You still need a fuse in the system though because the alternatives working with these power levels are arcwelding.These high current fuses are optimal for such systems. For 1000W consider a minimum of 150 amps or possibly a 200 amp fuse. The clear plastic covers protect the screwdown terminals from stray metal and let you get a visual on the fuse status should it blow (it won't be pretty if it does blow - stopping a 115A DC current is going to produce a nasty arc and will also leave smoke inside the cover - no problem telling if the fuse blew!A little secret - if you wonder why it is so hard to stop high power (200+ amps) DC and easy with AC it's that with 60Hz AC the voltage is exactly zero 60 times per second and usually stops on its own, so your arc lasts for a maximum of 1/60th second and with a sine wave source it naturally tapers down to zero where it stops. DC will go on forever if the gap isn't large enough. |
| 30 | 71569 | 1 | 5 | 4 | 0.890 | 0.224 | 0.812 | 173 | I bought this product after using two Cobras for 6 years. I thought I'm buying a premium product with a performance superior to Cobra. Boy, was I wrong.Last week I was travelling in Florida doing 90 m/h with highway mode on. Suddenly the radar alarm went off and the word "LASER" started flashing. Within 5 seconds I went from 90 to 65. That didn't prevent the police who was holding a radar gun from reading my speed within the first fraction of a second. He was about half a mile a way. I got $250 ticket!This is a $330 product, personally, I found it even less of a good product compared to my latest Cobra (XRS9570) which is $130 only.Stop the hype, buy something that work and save yourself $200 plus speeding tickets!This device was my first ESCORT, I'm sure it's gonna be my last!BTW, false alarms happen many many times within an hour, just like the Cobra, if not worse |
| 31 | 28366 | 1 | 5 | 4 | 0.752 | 0.040 | 0.275 | 172 | Worst computer product I ever bought. First one stopped working. It was a real pain getting the warranty honored. When I got the new one it had all this software that had to be installed to use it. I tried registering it but it kept saying it was an invalid number. I was never able to find a way to open any stored file. I thought I would be able to simply drag a file to the hard drive but not this thing. Apparently it forces you to store all the computers files instead of letting you choose. Didn't really matter because there was no way to see the files or open them. After spending a couple of hours messing with it I finally threw it in the trash can (in pieces of course). No more Seagate products for me. Oh and try to reach someone from Seagate for assistance. Good Luck. For the money I got much better satisfaction slamming this on the floor than trying to figure it out. |
| 32 | 28405 | 1 | 5 | 4 | 0.986 | 0.198 | 0.459 | 373 | Ok, so there are a lot of people that simply hate and detest this router. I read those reviews, and you know what...THEY WERE RIGHT!But it's not really the router's fault.If you look at the page where they display this router, they specifically tell you that it's nowhere near being a fast, high speed, top of the line router (there's a display towards the bottom of the page that says that it has speed is 150 mb/s and that the coverage is between good and strong).What they don't tell you is that what coverage means is that its antenna is fairly weak!I have other routers that, when placed in the basement of my house, will cover the entire first floor with adequate signal strength. This router gives me only 3 bars, and I'm only outside of the room and on the first landing going up to the first floor! When I get to the first floor, if I have line of sight, I'm good! If ANYTHING else gets in the way, there is no signal to be found!I have a lot of other, older routers (both Linksys & AVM), and they all work about the same. This router was a big let down for me. So I will be returning this router in the morning, and then ordering another E4200v2 router (probably from Amazon, again) to set up my wireless repeater.If you do decide to purchase this router, please be sure that you're living in something like a studio apartment. This router should be adequate for anyone that doesn't want their signal strength to be picked up in a large area. So one of the more positive things that I can say about it is that it will provide a smaller than usual footprint, for a bargain basement price. So from a security point of view, that's actually not a bad side effect to have.Also, you might want to read Mr. Glass' review, on how to configure it for problems due to the on-board chipset. I feel that he has some good tips and good information in his 5-star review of this product. |
| 33 | 28413 | 5 | 1 | 4 | -0.335 | -0.017 | -0.604 | 96 | BEWARE! The exposed pins on this thing are hot (as in electrified). I was moving a few wires and ZAP! Luckily the comp shut down and was not damaged. Also: the Velcro does not hold very well if you have stiff power cables that don't allow you to easily place this where you want it.All cases should come with at least one of these. My mobo has only 2 3-pin headers and I have 9 fans. The molex type fans suck because who wants all those big ugly molex connectors in their case? |
| 34 | 71634 | 5 | 1 | 4 | -0.758 | -0.030 | -0.733 | 169 | I had considered the switch from HDD to SSD quite a few times in the past. The faster speed, the relative ease of application, and the promise of never having to worry over hard drive failures due to over heating were all big sellers, but I'm old school and the switch was (still) a hard sell. Hearing enough of SSDs failing shortly after purchase and the concept of limited rewrites, along with not wanting to actually transfer all my data (and re-install all my applications), I was pretty reluctant to use this SSD at first.Let me say this ahead of time: those worries were absolutely foolish and if you have the chance to get an SSD get one IMMEDIATELY!Transferring and reinstalling just about everything was still a pain but the faster speed, especially for those using newer editions of Photoshop or playing graphics heavy games, makes it so much worth it in the end. I wish I would've switched to an SSD years ago! |
| 35 | 28549 | 5 | 1 | 4 | -0.655 | 0.069 | -0.683 | 153 | Pros:1. Reads and burn DVDs Fine.2. Cheap for a 14x Blu-Ray RWCons:1. I am not a fan of Cyberlink POWERDVD, which is the bundle softwareOther thoughts:From another accredited online electronics retailer (Newegg), there is a high rate (15%) of complains about this model failing to read and burn Blu-Ray discs. Normally, as for Sept 2012, a Blu-Ray RW Drive costs way above a hundred bucks, and this drive is on the same price range as other brand's Blu-Ray ROM ONLY drives. Personally, I bought this drive with the mindset of expecting Blu-Ray-oriented failures.So far, I've not yet tried any Blu-Ray playback nor burning. For DVD and CD functions, however, it has given satisfactory results. I will update my review in the future after using it for Blu-Ray Discs, which I hasn't ever used in my life -- yet. |
| 36 | 71604 | 5 | 1 | 4 | -0.723 | -0.122 | -0.212 | 38 | lovem can't say enough aboutem easy to program easy to use ,hated the shipping charge but if you need something bad enough you'll pay their ridiculas shipping cost but all in all the glasses are awsome. |
| 37 | 28574 | 5 | 1 | 4 | 0.997 | 0.163 | 0.603 | 724 | Okay, I've spent a good deal of time trying to figure out which GPS I should get given my budget for non-essential toys. I seriously thought about waiting until later when my budget was higher and/or prices went down on better units but my research kept on bringing me back to the Navigon. One can't look at Amazon ratings by themselves because some are not reasonable with their ratings. For example, buying a GPS knowing it's seriously lacking in the POI department then give it one star because the POI's are seriously lacking is just not reasonable. People reviewing Amazon rather than the unit is also humorous. So, after removing their ratings the average rating shot up really fast. So... the Navigon 2100 Max is what I decided to get.The menu layout as people complained about is not a problem for me. Once you learn where things are you know where to go to find them. Plus, 75% of the menu is settings so once that's done, you never have to go there again.The screen is very responsive to typing and the letters are NOT too small. I've been typing in a slew of addresses and haven't had any problem. People must be trying to hit the letters with the pad of their fingers rather than the fingertip. Even typing quickly as with double letters the screen is responsive. Oh, and the screen looks great too.The Pros:- Fast re-route response time.- Fast initial route calculation time.- Highway lane assist.- GPS tracking is about 2-3 seconds behind depending on travel speed.- Reality view is cool of highway interchanges.- Text to speech is 99% spot on even with tough street pronunciations.- Wide screen viewing- Branded POI icons.- You can choose which POI's you want displayed onscreen.- Trips can be logged in an Excel file with trip info and mileage.- Free traffic for life.- Free map and POI updates for a 2 or 3 years (seems to be confusion with this but they are updated each quarter). As of right now, Navigon said there are approx 2 million POI's with the 2100 Max.- Loud speaker.- Strong mount.- Great price.- Looks great and can fit in my shirt pocket.The Cons:- Poor and incomplete POI listing. The CVS Pharmacy by my house was not listed despite being there for the last 6 years. The unit gave me other CVS locations instead. This is just one example that I came across. I'm sure there's more. Navigon said they get their info from local municipality rather than the POI themselves which I didn't realize.- Searching for POI by name rather than location would be better than having to enter in location info first. But it does allow you to look for POI nearby but again, it may be incomplete as I said above.- Doesn't choose the best route for known trips around town. But I understand this is typical with many GPS units; even ones costing 4x as much.- It takes several minutes to locate me each morning after parking in a garage. On the road though during the day it finds me quite fast.I was considering getting the Magellen Maestro 4350 too but the lifetime traffic and free limited time map updates tipped the scales to this GPS. I've had my Navigon 2100 Max for 4 days now and see it's shortcomings but honestly they don't really bother me and it's a fantastic GPS. It does a great job of getting you around without a hitch, looks good doing it and does it inexpensively. I highly recommend.**Edited to add for a comment about the traffic feature. For people wondering whether they should get a GPS even if they don't travel much I say get one...get THIS GPS! Why? Because, even though on a daily basis I drive to and from work, here and there around familiar area's I use it constantly for the traffic feature. Several times it has re-routed me to avoid bad traffic/accidents saving me a lot of time I would've spent on the freeway going less than 5mph. I use this traffic feature every day even if I know where I'm going. Cheers. |
| 38 | 29165 | 5 | 1 | 4 | -0.819 | -0.094 | -0.115 | 82 | I took a gamble on this and thought that it may or may not work well. I was wrong ...it works exceptionally well. The application of the shield takes a bit of time and patience. Don't worry about the small bubbles or imperfections on the corners because when it dries after about a day or so, they go away. It is tough, rugged and can take a beating without scratching. It actually works as well as the Youtube video ...no kidding! |
| 39 | 71007 | 1 | 5 | 4 | 0.986 | 0.103 | 0.144 | 1242 | I'm actually quite surprised that the NSLU2 device currently has an average of 3.5 stars. Unfortunately, for such a simple device, I have found it to be a dismal waste of my time. It has been unreliable and performance has been inconsistent. I bought this device to give to my sister, as a means of allowing her to store music and movie files on her network. She has very little technical understanding, so a device that is easy-to-setup and use is a requirement. The NSLU2 is not that device!First off, I want to point out that I am a Linux Systems Administrator with 10 years of experience. I know about networking and computers and obviously Linux. This device is running Linux internally, with Samba being the internal application that provides access to the attached USB disk (i.e. via Microsoft Networking). That said, I hope no one takes my comments as Linux-bashing. On the contrary, I'm a big supporter of Linux. Linux is a great operating system. Unfortunately, the NSLU2 is a poor implementation of Linux as an embedded device.If Linksys is taking notes on how to improve this product, here are some suggestions. Begin shipping these devices with a serial console port, an SSH server automatically enabled, a faster CPU, and more memory. Having all those items should improve the performance of the device, as well as allow knowledgeable system administrators to fix the "quirks" when they develop.Regarding the slow transfer speeds, which many others have complained about, I confirm this. First, the NSLU2 gets about a 25 Mbits/second transfer speed, while a real computer which exports a shared directory through Microsoft Network can achieve about 75 Mbits/second. While 25 Mbits/second is slow, it's tolerable. (Of course, this assumes that it is attached to a 100 Mbits/second network.) Second, others have complained about the NSLU2 being slow in comparison to the transfer speed they achieve when the USB drive is attached to their computer directly. Well, that's expected. When directly attached to a computer, USB 2.0 is capable of up to 480 Megabits/second. But the NSLU2 has a 100 Megabits/second network port. By putting a network between your computer and the USB2 drive, you're limiting the throughput to only 100 Megabits/second, 20% of what USB2 is actually capable of. Incidentally, if you're thinking of buying a similar device with a 1 Gigabit/second (i.e. 1000 Megabit/second) network port, do your research, as many will never achieve anything beyond 100 Megabit/second speeds anyway.In the first few days of owning the NSLU2, here's a sampling of the problems I have had. (1) If I deleted a directory on the NSLU2, it would reappear again instantly. This is most likely a problem with Samba within the NSLU2. Having seen this problem in the past with real Linux servers, it's caused by an incompatibility between how Windows saves files (i.e. attributes and permissions) and how Linux does so. Samba "maps" the Windows attributes and permissions to similar attributes in Linux. Because it's not an exact mapping, quirks will sometimes develop. Also, some filenames that are valid on Windows end up causing problems for Samba. To solve this problem, I had to copy all the files off the USB drive attached to the NSLU2, then reformat the drive. (2) The DHCP client on the NSLU2 is incompatible with the DHCP server on my network. I had to configure the NSLU2 with a static IP address to overcome this. (3) The USB drive attached to the NSLU2 just disappears from time-to-time for no reason. The NSLU2 is available on the network, but it doesn't see the attached drive. (4) Transferring very large files (e.g. 3 Gigabytes) to or from the NSLU2 will cause the device to freeze up, and it will no longer appear as available on the network. I have read that this is probably being caused by attaching only NTFS or FAT32 drives to the NSLU2. Others have suggested that using the NSLU2 to reformat the USB drive will improve reliability and performance. After using the NSLU2 to format a new USB drive, I see that it created 3 partitions: one big EXT3 partition for my data, one small EXT3 partition for user/group authentication information, and finally one Linux Swap partition for improved memory management within the NSLU2. (By the way, EXT3 is the default filesystem used by most Linux distributions.)Besides reliability issues, the NSLU2 has usability problems. (a) You won't be able to take advantage of the user/group permissions of the device unless the attached USB drive is formatted by the NSLU2, as the user/group permissions need to be stored on a special partition the NSLU2 creates on the USB drive. (b) The NSLU2 is only capable of formatting attached drives in EXT3 format. If you need to format a drive as NTFS or FAT32, you'll need to attach the drive to your Windows computer to do that. (However, the NSLU2 does support attached NTFS/FAT32 drives.) (c) Being a systems administrator, I understand how to configure this device, but I believe the user-interface will not be intuitive to many people. The unit's functionality is spread over too many different screens, and the clickable buttons are sometimes not in an appropriate place. You'll understand what I mean when you actually use it.Because of the extreme inconsistency and unreliability of this device, I will not be storing any data that I deem "important". At best, I will store only backup copies of files on this device, or files that I don't care about losing. I will probably use the device as a network drive share, where my Windows computers can save their nightly backups. That way, if the NSLU2 dies or gets really horked, I don't lose any data (the originals are on the Windows machines already). Additionally, I will also use it to store the very large ISO images of Linux distributions I download off the Internet. (I can always re-download the ISO images, if the NSLU2 dies.)Lastly, because we live in a "mostly" Windows operating-system world, here's a tip for those of you who find that the NSLU2 has failed you, as well as your precious data along with it. This is for those of you who find that your NSLU2 stops working. If you initially used the NSLU2 to format an attached USB drive, you should know that it will be formatted in EXT3 format, which Windows is not natively capable of reading. If you attach the USB drive to a Windows computer, it will not be able to read it automatically. However, there are a couple of freeware EXT3 drivers which allow Windows to read the EXT3 partitions on your drive. An easier solution for most people will be a freeware software tool called Linux Reader, created by a company named DiskInternals. (I do not work for that company and I do not know anyone who does, so it's not a shameless plug.) I don't like losing personal data, and unfortunately many people will get the wrong impression that their data is lost when the NSLU2 dies. Not necessarily so.Well that's all I have to say for now. |
| 40 | 29171 | 5 | 1 | 4 | -0.852 | 0.100 | -0.586 | 69 | I have this installed in a 2005 camry SE. All of the factory buttons work as before. i had this installed by a professional. no problems so far. I am haveing a problem with the radio it keeps chang to AUX in mode. I don't know if this is because of an interface problem sending signal to the radio. I will updste when I get it checked out |
| 41 | 70273 | 5 | 1 | 4 | -0.907 | 0.166 | -0.109 | 194 | C700 is my first digital, and I went for the zoom. It did not disappoint. Great pictures inside and out at all zoom levels. For years I've been a 35mm slide-taker with a 35-210 zoom, and the C700 takes it to a new level. So far I've just used the auto setting and the results have been great - far fewer throwaways than on my 35mm. Really handy is hooking the camera to the television to show the pictures.I bought refurbished through Amazon, but note that the camera is about half the total cost which includes extras such as a couple of memory cards, two sets of rechargeable batteries, case, lens cap cord, SmartMedia card reader, and a CD burner to store the pictures.Finally, I saw a number of reviews that complained about the lens cap being a problem. I don't understand these comments as I don't have a problem with turning the camera on or off with the cap on. Perhaps I have a later version that corrected the problem. Having a simple cap cord ... attached is a convenient way to keep track of the cap. |
| 42 | 29931 | 5 | 1 | 4 | -0.812 | -0.208 | 0.215 | 80 | It's SanDisk. It's 32GB. It's Extreme Pro. Using it in my Nikon D700, I can shoot an entire wedding and still have room for the reception. No need to change out the memory card in the middle of a shoot so that I don't miss a step. Not much more you can say. It's extremely reliable. I've used SanDisk since I started and have yet to be disappointed in any of their memory cards. |
| 43 | 30028 | 1 | 5 | 4 | 0.983 | 0.252 | 0.569 | 363 | UPDATE: This was a lousy cover. After just a couple months of use, it was cracked all over the place, particularly near the corners where tiny pieces of the material have fallen off. There are many better options out there (and hopefully, Belkin has moved on to something better by now).Below is my original review...If your intention is to get this shield, put it on your iPad and leave it there, then I think you will be VERY satisfied. I was immediately impressed at its durability and fit. It also looks nice, and has a texture that feels good. The shield snaps into place so perfectly that there is no way it would accidentally come off. Prior to getting this shield, I was always careful to put down my Smart Cover protected iPad with its bare back facing up. But the Belkin shield completes the protection...I can toss it into my backpack confident that both sides are now protected.However, if you need a shield that is easy to put on and take back off, you might find that the fit is TOO snug. Consider the following:1) If you decide to remove the shield, you have to apply some pretty precise force to the corners to get it to come off. I have a dock I use regularly that will not work well with this shield in place. I'm considering discontinuing my use of the shield just because of this issue.2) The other problem is related: Having removed the shield a couple times now, I've noticed small cracks in 2 of the corners of the shield. Not only is it not easy to remove and reinstall the shield, but it seems that doing so is damaging the shield. So far, those cracks do not seem to have affected the ability of the shield to stay in place, but I am concerned that after a couple months of this routine, the cracks could result in the shield no longer staying in place.Again, this may be absolutely perfect if you are seeking permanent protection. But you might look elsewhere if you want an easy-to-remove cover. |
| 44 | 70386 | 5 | 1 | 4 | -0.708 | -0.013 | -0.215 | 67 | I purchased these because the original eartip kept slipping and allowing the 925 to point down instead of forward. This is actually an improved version because it has little stubs that stick into the 10 holes on the earpiece. Will not slide anymore! Made my day knowing my bluetooth will no longer annoy the hell out of me by slipping, even when the silicon has become old! |
| 45 | 30060 | 5 | 1 | 4 | -0.803 | 0.042 | -0.133 | 57 | I was hesitant to buy a flash drive that had a swing cover, but this one seems to work very well. The movement of the swing cover is smooth and takes deliberate force. My previous flash drive was very floppy and loose. Floppy and loose is never good. The speed is average, but the price is cheap. |
| 46 | 70379 | 1 | 5 | 4 | 0.976 | 0.204 | 0.343 | 175 | Firstly, these speakers are not good. I should've followed my instinct but I let my guard down because of the positive reviews. Common sense would indicate that these aren't good speakers. They're inexpensive and small. I've owed pyle speakers that were excellent but I paid a lot for them. Bose and Sony make good small speakers but they're expensive.Second, YOU CANNOT RETURN THESE TO AMAZON! They are considered hazmat. Seriously. On the return page there is no option to return them only a statement that says the product contains hazmat and if you want instructions on how to properly dispose of them Amazon will provide them if you click the hyperlink.Finally, my friend has the Dayton 6" bookshelf speakers and he swears they sound fantastic. I didn't buy those because of the bulky size. If you want good/ inexpensive speakers, maybe that's the way to go. They have excellent reviews. Beware! If you buy them from Amazon, you may not be able to return them. |
| 47 | 97634 | 1 | 5 | 4 | 0.919 | 0.187 | 0.813 | 98 | This was a gift for a lady who has limitted use of her hands. It was sent as an early Christmas gift, fortunately, because now I must find something else. The pictured Item looks good and comfortable. Regardless of the appearance or comfort it is no good if it doesnt work. The lady has an ATT cell phone, a mistake, but that is it. This thing doesn't work at all. A friend is going to try finding someone who can use it. Be very careful what you order this for or don't order it at all. |
| 48 | 30201 | 5 | 1 | 4 | -0.738 | -0.097 | -0.441 | 71 | I have been using this item for the last few months. Apart from the new-product chemical smell that went away within a few days the item has been just fine. The only issue is that I also put a hard shell on my MacBook Pro which caused it to not fit very well into the sleeve. I have since removed the hard shell (it was worse than nothing at all). |
| 49 | 97631 | 1 | 5 | 4 | 0.923 | 0.158 | 0.575 | 229 | If you want to connect wirelessly with something that is in the same room, it will probably be okay but the signal drops off dramatically if you go beyond that.I purchased this unit 18 months ago because of it's high reviews and because at the time it was the most popular router being offered. I was connecting to a blueray player 2 rooms away to access Netflix and Amazon videos. Since the beginning I had issues with buffering and picture quality downscaling and got no signal at all on my front porch. This was my first experience with wireless connectivity so I assumed that this was the best I could do and that I was probably being "throttled" by my ISP and/or needed to buy more (expensive)bandwidth. Boy, was I wrong.I recently purchased a Netgear router in the same price range, installed it in exactly the same physical location, with the same download speed and exact same router settings and was shocked by the difference in reception. I now get full 1080p on my Blueray and 3 out of 4 bars on my front porch. The difference was so dramatic that I went back and looked up the reviews on Amazon and now see all the comments regarding "faked reviews". Surprised that Amazon is still selling this unit. Buyer beware.. |
--- End of Worst Predictions Table for Hybrid Weighted --- --- Confidence vs. Performance Analysis for Hybrid Weighted ---
| Confidence Level | Num Reviews | Accuracy | Close Acc (+/-1S) | MAE | |
|---|---|---|---|---|---|
| 0 | V.Low (0-.25) | 14236 | 0.224 | 0.694 | 1.183 |
| 1 | Low (.25-.5) | 17800 | 0.419 | 0.802 | 0.882 |
| 2 | Med (.5-.75) | 31608 | 0.530 | 0.921 | 0.590 |
| 3 | High (.75-.9) | 20854 | 0.690 | 0.948 | 0.386 |
| 4 | V.High (.9-1) | 1051 | 0.870 | 0.987 | 0.148 |
------------------------------------------------------
2025-06-21 00:30:25 - INFO - evaluate_model - Evaluation for Hybrid Weighted complete. Evaluation for Hybrid Weighted complete. 2025-06-21 00:30:25 - INFO - evaluate_models - Evaluating model: Lexicon Ensemble 2025-06-21 00:30:25 - INFO - evaluate_model - Evaluating model: Lexicon Ensemble (column: lexicon_ensemble_stars)... Evaluating model: Lexicon Ensemble... --- Lexicon Ensemble Performance Metrics ---
| Metric | Value | |
|---|---|---|
| 0 | Accuracy (Exact) | 0.3433 |
| 1 | Accuracy (+/-1 Star) | 0.7506 |
| 2 | MAE | 0.9894 |
| 3 | RMSE | 1.3575 |
| 4 | F1 Score (Macro) | 0.2538 |
| 5 | F1 Score (Weighted) | 0.3787 |
| 6 | F1 Score (+/-1 Star) | 0.8575 |
| 7 | Precision (Macro) | 0.2959 |
| 8 | Recall (Macro) | 0.2838 |
| 9 | Cohen's Kappa | 0.0893 |
| 10 | Sample Size | 99,934 |
------------------------------------
2025-06-21 00:30:25 - INFO - save_worst_predictions_to_csv - Worst predictions CSV for Lexicon Ensemble saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/worst_predictions_analysis/lexicon_ensemble_worst_predictions.csv --- Top 50 Worst Predictions for Model: Lexicon Ensemble (Error >= 1) ---
| index | true_rating | predicted_rating | error | vader_compound | textblob_polarity | custom_score | word_count | text_preview | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 23921 | 1 | 5 | 4 | 0.990 | 0.253 | 0.848 | 124 | Great security, strong performance ,easy to set up and use. Operates with many different devices smoothly. And best of all, best support of any company I've ever contacted. Unfortunately the tech support team I worked with was only hired temporarily by Lynksys and when this $200.00 router stopped working 14 months later the current tech support was more interested in charging for support and telling me the warranty was only good for 12 months. Needless to say I will not be buying any Linksys products in the future. I will be trying a new Buffalo router, this Texas company offers a three (3) year warranty and lifetime 24/7 tech support. Buffalo seems to have a little more confidence in their products. |
| 1 | 62461 | 1 | 5 | 4 | 0.759 | 0.071 | 0.742 | 80 | Have 2 Airport Express. One upstairs. One downstairs.Could not reliably use with our 6 Apple products (1 of each iphone 5, macbook, ipad 4), and Samsung Galaxy Tab3.Finally gave up and setup a $30 4 port dual band wifi router and got good reliable signal both upstairs and downstairs.Spent 6x the cost for the two Airports and got less.Pay more, get less. :(Not going to listen to the people at the Apple Store so faithfully anymore... |
| 2 | 13995 | 1 | 5 | 4 | 0.414 | 0.100 | 0.644 | 73 | This item arrived and looked great/well made. The magnet on the cover was strong and kept the top closed. Then I went to put my Galaxy 2 7 inch tablet into the case and it would not fit. The cutouts were not lined up correctly, The case distorted as I slid the tablet in. I am not sure what tablet this was designed for, but it certainly was not the Galaxy tablet. |
| 3 | 39071 | 5 | 1 | 4 | 0.660 | 0.081 | -0.286 | 40 | The cable came as promised and so far works as promised. I was a little disapointed at the construction. The construction seems to be cheap and the cable very small. You are getting what you pay for. It works fine. |
| 4 | 75240 | 5 | 1 | 4 | -0.329 | 0.058 | -0.587 | 67 | I got this so that I could continue to use a small DVD player as a monitor--it has no HDMI input. It has an adapter cable for RCA input. I was concerned that it would throw off the other HDMI displays I have connected to the same output, but they resolve their handshake with no problem. The adapter works fine and does exactly what I needed. |
| 5 | 89417 | 1 | 5 | 4 | -0.632 | 0.068 | -0.526 | 68 | The neck of my Samsung LN-S4695D supplied TV stand broke after 8 months and the 75 pound TV came crashing to the floor. Others have reported the same problem, the neck is all plastic and cannot support the weight of the TV. I have to give their service 5 stars they replaced the TV with a brand new LN-T4661F which has a stronger neck and stand. |
| 6 | 5107 | 1 | 5 | 4 | -0.719 | 0.339 | 0.352 | 62 | The item is not of good quality and the rotating device broke one day later..went back to my old case and still looking for a new one..it was not the seller..even though he charged me more to send it than the price of the item..will not shop the seller again if that the kind of quality he sells.. |
| 7 | 24810 | 1 | 5 | 4 | 0.460 | 0.339 | 0.556 | 49 | It was a nice idea but the kindle falls out of the case too easy, and it really doesn't protect the Kindle from much of anything. It is more a "nice looking" case for when you want to look 'professional' with a Faux leather wallet case. |
| 8 | 75255 | 5 | 1 | 4 | -0.850 | 0.117 | -0.731 | 537 | Thanks to pics uploaded by another reviewer I was able to get this mount to work. There are 4 legs on the mount but only 3 pre-drilled holes on the HD20. You have to remove one of the 4 legs (the sliding portion of the leg anyway) by simply unloosening an allen head screw. Another sliding leg also has to be removed and placed in backward facing to match up with the third hole on the HD20. The pics didn't specifically address that, it kind of looks like there are only two of the mounts legs attached. I ended up using the extension rod. It was kind of a pain as you have to balance a metal cylinder inside the extension shaft while screwing into it from the outside. I didn't use the extender's cable management as it would require for dis-assembly to change out cables if one goes bad.This mount requires a lot of assembly and dis-assembly if you want to do it right. Definitely read the manual and separate the parts before you begin as there are about 20 washers that are different but look the same. This was my first projector. My advice is to do a complete moc up of the projector placement (to include firing up the projector with a test image on the wall) before tightening the Allen head screws and drilling into the ceiling (thank The Lord I had some left over Spackle). I had my son help me out so I held the mount up to the ceiling and he held the projector.You have to decide first off if you are going to use the extender, as it will modify the install greatly. Attach the projector to the mount's feet as per the other user's review pics and above description.The ceiling bracket has 3 holes and three screws. The screws have a socket head with a Phillips head screw pattern also. My advice is to use a 8mm socket and electric drill not a screw driver, as I easily stripped out the Phillips portion driving in the first screw. The ceiling bracket has a center hole that will allow you to put in the screw first then place the mount on and slide it over (to lock it into place). You can then install the other 2 screws. Not sure why, as you have to install the mount by itself as you cant tighten the screws with the bottom portion attached. Also the screws say they are 10mm. I didn't have 10mm drill bits, so I approximated and it made the drilling a bit rough.Once you have the ceiling bracket installed, then you can slide the bottom portion (with projector attached) onto two pins before screwing it in tightly. This is a major plus if you don't have a helper to hold the projector while tightening everything with the provided Allen wrenches. You will need another set of Allens or at least the bigger one of the two that come included if you use the extension to tighten them.Over all, it took me about 1.5 hours from start to finish. Hope review helps. |
| 9 | 14055 | 5 | 1 | 4 | -0.440 | -0.025 | -0.637 | 34 | I made the mistake once of spending $20 on a HDMI that broke less then 2 years later. Do yourself a favor and go cheap with some AmazonBasics. There's seriously like no difference. |
| 10 | 69498 | 5 | 1 | 4 | 0.555 | 0.042 | -0.175 | 83 | This camera is grate! We had a major problem with dog's urinating and doing there buisness near our apartment door, the smells were getting very bad and we could not prove who's dog was doing it, well, the camera tells the truth and we finally were able to catch the dog and his owner who was allowing his dog to do this in our hallway and onto the carpet! Now we have fresh smelling carpet and we have peace of mind! |
| 11 | 5075 | 1 | 5 | 4 | 0.852 | 0.900 | 0.786 | 15 | This card is the best for my camera, can get over 800 pictures.. Its great |
| 12 | 5192 | 1 | 5 | 4 | 0.448 | 0.065 | 0.497 | 66 | As great as the Livescribe pen is...this case is absolutely worthless, and i wish i returned it. It is VERY hard to get the pen in and out of, the magnetic clasp isnt strong enough to keep the flap closed, and its just bulky. it looks nice...there, i found a positive...but thats about it. Save your money or put it towards more pads. |
| 13 | 98562 | 5 | 1 | 4 | 0.141 | -0.062 | -0.470 | 43 | i use this for my ipad, kindle and even iphone. it is simple and well built and small enough to put in a pocket. One might possibly quibble that the reading angle cannot be adjusted but that is not an issue for me. |
| 14 | 52913 | 5 | 1 | 4 | -0.818 | -0.152 | -0.776 | 116 | I've used one spindle of these plus a few 5-packs and the media itself has yet to cause me any problems - every error I have had with these has been due to specific files that I found that were corrupt on my hard drive (the corrupt file was always the first one not written on the disc, which is how I know the cause). Onnce I removed the corrupt files, I was able to write it to the disc every time, and read the disc both on the USB DVD burner I used to burn it and on my laptop's DVD drive. I would take the complaints here with a grain of salt. |
| 15 | 14088 | 5 | 1 | 4 | 0.980 | 0.218 | 0.638 | 229 | Bass not lacking at all if you know your music (or else bass-heavy stuff like Gangsta may sound thin). These IEMs were wholly satisfactory after about 100 hours of play. For twenty dollars extra it outdoes Brainwavz M3...by about $20 worth, so I got what I paid for. They insert deeper, too. The twist out of ears takes longer b/c of that, and I take off one star for the "threat" of the cable breaking (see some reviews here), plus the thing that you slide up to bring the y-cable together is too loose to be much use -- but that one star goes right back on due to the sound! Comes with a round clamshell case now instead of the cable winder. More eartips, too, in line with what HiFiMan supply with their flagship headphones. Oh yeah, the filters: I guess if their only reason is to collect dust, debris, it's good that they're replaceable (comes with five extra sets), but while you're busy trying out the different tips they may fall halfway into the driver but can be toothpicked out to be easily replaced with one of the extras.Update: Brainwavz M3s still sound stellar in comparison; I'm sure it's just that those are "warm and sweet" whereas the Re-400s are more analytical. Two nice choices to have. |
| 16 | 5064 | 5 | 1 | 4 | 0.676 | 0.056 | -0.286 | 72 | It's a Mac. Nuff said. No more system wide viruses and no more slow downs. This is the computer for anyone who values a secure work platform. Sure it's pricey upfront. But buying a virus laden windows pc will cost you more with the need for third party antivirus software year after year. And all sorts of additional malfunctions and slowdowns that will need technical correction. Apple all the way |
| 17 | 52898 | 5 | 1 | 4 | -0.111 | 0.041 | -0.525 | 90 | I use this on the top of my desk. It is a roll-top desk with a cord grommet in the back. Instead of running all the cords down, I just run the cord for this one down - it is short and needs an extension). Then I can plug in my desktop devices and a large number of USB cords - which is the main reason I bought this.Only downside is that the cords can be two prong only. Not a huge issue for me, but might be for others. |
| 18 | 75286 | 5 | 1 | 4 | -0.957 | -0.312 | -0.700 | 66 | I bought a Sandisk 32 gb card but I higher read/write speed for my Canon 50d, I had alot of problems with it (couldn't download pics to my computer). It appears that either the card was bad (all tests on it showed no problems though), or there was a compatibility issue. I returned the card and bought the slower speed, no issues at all! |
| 19 | 52830 | 1 | 5 | 4 | 0.960 | 0.130 | 0.814 | 163 | I am a pro photographer and bought this to replace the 50 mm f/1.4 (a mistake .. now i can see!). I replaced the 50mm initially because it was not sharp enough albeit a good construction and felt it was a quality lens. This lens costs the same so I felt it should be about the same quality even if in terms of aperture it is a bit of a step backwards relative to the f/1.4 of the 50mm... but I was wrong. The 35mm f/2 is a HUGE step backwards in every direction. Every time I put it on the camera I feel like I will break it.. it is like a plastic toy. It is small and light, which is great. But it is soft... way too soft.. not too great. I have yet to get a sharp shot from this lens. Lesson learned: get the L series next time. Simply not worth $10 in my opinion. |
| 20 | 89359 | 5 | 1 | 4 | 0.649 | 0.133 | -0.279 | 24 | pretty colors. Small ties. They work well. Cheap. What else do you need to know? They are wire ties. I'd buy 'em again. |
| 21 | 69445 | 1 | 5 | 4 | 0.557 | 0.239 | 0.215 | 26 | I bought the Verbatim disks based on the "5-star" rating and positive recommendations. Of the first 4 disks I burned, 3 were unreadable. Caveat emptor. |
| 22 | 24915 | 5 | 1 | 4 | 0.587 | 0.344 | -0.105 | 93 | Works perfectly, my TV has 2 hdmi ports and with all of my devices that I want to use I have a need for 5 ports. This switch takes care of that problem and more, I no longer have to change the input mode on my TV when I want to use a different device, all I have to do is turn it on and the input switches for me. When I'm done all I have to do is turn the other device off and it returns to the channel 1 input. |
| 23 | 5205 | 5 | 1 | 4 | -0.827 | 0.000 | -0.748 | 20 | the speaker came in, but the package was damaged, so the speaker just pops, but it was postal services problem! |
| 24 | 24600 | 1 | 5 | 4 | -0.647 | 0.222 | 0.350 | 153 | Just tried a couple of these as an indoor antenna (with snow, freezing temps and high winds, it wasn't the best time to try setting it up outdoors!) for a new flat screen TV and for an older TV with a converter box. Even with the amplifier it wasn't any better than "rabbit ears". Using it on the first or second floor made no difference; with the rabbit ears I only got an ION station and that's all I got with this unit. Stations I was hoping to get originate in Providence (about 30 miles north of me) and Boston (about 60 miles north). I suppose I could have kept it and tried mounting it outside when the weather improves, but decided if I'm going to do that I'd be better off following the AntennaWeb recommendations and put the work into mounting a "real" multi-element outdoor antenna. |
| 25 | 69670 | 1 | 5 | 4 | -0.997 | 0.037 | -0.401 | 1021 | Mediabridge said it was MY PROBLEM that the adapter would not work because they didn't know what the problem was! Despite trying a couple of dozen times AND would not enable AND gave the blue screen of death repeatedly, when I tried to shut down my computer.I have a relatively new computer, with Windows 7 Ultimate, 64-bit and have NEVER had any problem with it and have never had the blue screen of death before!This USB adapter has been quite the nightmare! The manufacturer (Mediabridge) finally told me that they couldn't help me in that it was my problem because they didn't have the answer.After about five hours on the phone with tech support numerous times, and working with techsupport dotcom and sevenforums dot com, it still didn't work and I keep getting the blue screen of death, when it is plugged in and IT WOULD NEVER ENABLE!The forum discussions are at sevenforums (dot)com, do a search for "BSOD W7 shutting down, only with USB wireless adapter plugged in"andtechsupportforum(dot)com (shutting-down-only-with-usb-wireless-adapter-plugged-in)My problems started when I wanted to change from a wired connection, in my office, to wireless.I have two other computers running wireless, off the same router, with no issues.I thought it would be super easy to plug in a USB card/lan, to make this happen. WRONG! It was super easy on my other computer.I purchased at Medialink USB adapter, due to the rave reviews on Amazon.It seemed to install correctly, after installing it in safe mode and it finally loaded the driver but then I have to go to the Network and Sharing Center, in order to enable it.I click on "change adapter settings" and on that page I try to enable the adapter but it will never enable.Someone on Amazon reported the same problem, and said to do this in safe mode. I have tried that to no avail.The interesting thing is that in Network and Sharing Center, a pop-up window says enabling and then shortly after it says enabled, but it does not show as being enabled on the screen.However, when I go to device manager, it shows the USB adapter and the driver installed and the only option there is to disable it - which seems to imply that the adapter is already enabled???Very confusing and not right, by any stretch of the imagination.This has not been a problem with any other hardware, software or anything else, ever!The bottom line though is that the adapter does not work and the software that they supply you with, does not show any networks in the area, even though the new ASUS router (bought on Amazon) is within 10 feet of me, and works extremely well with the other computers in another room, through several walls and about 30 feet away and a floor above me.I never did get it to enable but I kept getting the blue screen of death, when I try to turn off my computer, ONLY happening with the USB adapter plugged in.This has happened EVERY time I try to turn off the computer.The computer will immediately turn off as soon as I unplug the USB adapter and will not give the BSOD then!It also has an equal issue trying to start up, if the adapter is plugged in. the computer WILL NOT START UP and go to the password screen, until I unplug the adapter.The BSOD says "driver power state failure" which would seem to indicate to me that there is a problem that the driver?? But I have to admit that I know nothing about this. I only know that the USB adapter does not work and causes a problem if it is plugged in.I did call the manufacturer (Mediabridge), and to their credit, they quickly sent me another USB adapter (Medialink WirelessN WWN-USB150N), thinking that it was a defective adapter bit I know now that it is NOT a defective adapter, per se but either defective drivers or defective software or both.One of the technicians on the forum said that the driver was a couple years old and that there were new ones available but they are not on the CD supplied! I downloaded the new driver but it did not help the problem.I would really like to get my system wireless so that there isn't a wire running across the floor!!The manufacturer told me that the only time that they have seen this problem (the adapter not enabling) was when an antivirus program was present.However, they said they have NEVER seen this issue with AVAST, which is what I use (the paid Internet security version).Nonetheless, I contacted Avast and they sent me software to completely uninstall the program, without any trace left.I tried reinstalling the adapter and tried to enable it again, but it did not work and so the antivirus program is NOT the issue here... But even tried it with no antivirus program anywhere on my computer.After many hours of trouble shooting, I was finally told, "it is your problem" because they didn't have an answer.One of the technicians on the form said that a USB adapter generally does not have sufficient power to run it off the USB port but often they do manage to work.He then said, "Maybe it's time to chuck this adapter and get a PCI card..."They were right!I bought a EDIMAX PCI card http://www.amazon.com/gp/product/B0067I4Z6O/ref=oh_details_o05_s00_i00, right here on Amazon! IT IS 5 STARS and works GREAT!I could have save 5 hours of my life and a lot of grief and frustration!Do yourself a favor, open up your computer and put in a PCI or PCI-e card and install it with just one screw and it will work every time with no fuss, no muss and no problems trying to enable it! |
| 26 | 69718 | 1 | 5 | 4 | 0.324 | 0.056 | 0.608 | 49 | The audio quality is all treble so it has a tin effect regardless of what headphones you have, and constant clicking. You can't really ignore the clicking it is about 3/4 the volume and occurs every 3/4 to full second. Buy something else, plain and simple. |
| 27 | 93197 | 5 | 1 | 4 | 0.925 | 0.095 | -0.054 | 349 | Let's face it, most people invest in a case for some kind of protection and this one does the job very well. I have the Blue and my wife has the Raspberry. We were some of the first to buy and I have yet to clean mine. It goes outside in the hot, dusty Arizona desert, to the beaches in Florida and Georgia, in the car, and everywhere inbetween. Yes, it does add to the weight, but that does not seem to bother my 5-yr old granddaughter or my 13/15 yr old grandsons when they use it. I happened to take my case off today to clean the screen and couldn't wait to put it back on. I much prefer the added heft and sturdiness the case provides.I don't know where Chuckie takes his or what he expected, but his 1-Star rating is totally bogus. You don't buy a silicone case expecting it to stay spotless or simply wipe clean with a damp cloth and then give the lowest rating when it doesn't meet your expectations. You also don't give the lowest rating simply because "you think" the back is flimsy. Sure, it's not as thick as the sides, but it doesn't have to be, it's just covering an already sturdy back cover.And finally, if one is so unhappy with the case, why hasn't he returned it for a full refund? My understanding is the seller has offered a refund even if past the refund window? Could it be because he is actually using the case and just wants something to complain about?To anyone considering this case, i encourage you to read ALL the reviews, including the bad one, and decide for yourself. Just don't put a lot of credence into a single 1-Star rating. Decide for yourself if the added heft is worth the added security it provides. We both bought the Thrive because it felt better than the lighter tablets. Adding this case made it feel that much better. |
| 28 | 25181 | 1 | 5 | 4 | 0.115 | -0.034 | 0.528 | 118 | I've been using Wacom tablets for many years, and they've always been precise and reliable. But quality control seems to be slipping. The pen that came with my Intuos 4 lasted just over a year, then completely fell apart. For nearly $70 (more than a competing TABLET with 2 PENS) I expected this replacement pen to be well made. Instead, this one started coming apart after 3 WEEKS. The little round nut at the tip just keeps unscrewing and falling off. Being plastic, I'm afraid of over tightening it, especially since it appears to have less than a half-turn of useful thread. I have to put it back on every few hours.Very disappointed. |
| 29 | 5417 | 5 | 1 | 4 | 0.617 | -0.164 | -0.348 | 48 | My new SSD was a bit difficult to screw in, but I don't see how it could have been avoided. It otherwise works perfectly. (I only have one hard drive in the casing now, but I can't envision any problems if I wanted to add another.) |
| 30 | 53347 | 1 | 5 | 4 | -0.633 | 0.209 | 0.352 | 57 | When searching for the new note 10.1 this showed up as compatible product the moment I attempted to use it I saw it did not fit. Unfortuntely too much time had passed when I was able to try it out. Mine is still flawless and new but unfortunately doesn't fit what I have from Samsung |
| 31 | 25133 | 5 | 1 | 4 | 0.000 | 0.133 | -0.473 | 82 | I have no problem getting the marble wheel out to clean the contact points, there is a small hole in the bottom of the case under the wheel that can be used to pop it out with any pencil type object. However, if you drop it all the time like I do, since I use my laptop on the couch and keep the trackman on the armrest, the marble comes out all the time.....pop it back in and it's fine. |
| 32 | 25119 | 5 | 1 | 4 | 0.901 | 0.054 | -0.219 | 103 | This does what it's supposed to, it links an HDMI cable to a device at a right angle for tight spaces. The thing that you must be careful of, is making sure that you have the right direction coming out of your device. I actually needed the elbow to point down coming out of my DVR, and, unfortunately, it points up. But it is well constructed and I will not be returning it since it was so cheap to begin with. I will hope that I will find a use for it in the future, or maybe a friend will need it...... |
| 33 | 62111 | 1 | 5 | 4 | -0.532 | 0.117 | 0.364 | 78 | Linco makes a pretty good standard stand but I would not reccomend this item to any photographer that will be attaching a strobe to this stand then then placing it above a client.It is not heavy duty, it it NOT stable, and I would not trust the plactic brackets used to mount the boom.I sent it back the very say day and bought a boom from Kupo Grips. Pay the extra few bucks to get quality.... |
| 34 | 62127 | 1 | 5 | 4 | -0.529 | 0.188 | 0.229 | 44 | TV was was very nice and met my needs. But, it died just short of 3 months. I purchased a warranty with this purchase, hopefully Square Trade will repair/replace as they claim to do. Getting TV's repaired in Honolulu is not easy. |
| 35 | 13864 | 1 | 5 | 4 | -0.477 | -0.135 | 0.330 | 43 | Ordered 2 of these, one for SO and I.Within 2 months one of them dies, as others reviewing have noted.Ordering from a different brand before the other croaks.Does charge as fast as regular cord... Disappointed it didn't work out. |
| 36 | 13974 | 5 | 1 | 4 | -0.493 | -0.205 | -0.689 | 39 | I bought a Netgear and spent 5+ very frustrating hours trying to get it to work, and then it worked poorly only some of the time. Belkin includes a cd which does it all in just a few minutes. |
| 37 | 25048 | 5 | 1 | 4 | -0.329 | 0.018 | -0.595 | 48 | I was afraid these might be fragile, considering the price, and they're obviously foreign made, but they seem to be fine, although dirt cheap. The length of the cords can be a curse or a blessing depending on where you need them, but I deal with it. |
| 38 | 69632 | 1 | 5 | 4 | -0.939 | -0.012 | -0.784 | 62 | Plastic, not aluminumNo flip-out bar to raise the back (it sits flat)Very cheap feeling and lookingIt works well enough (not all of the smart keys work, but I don't really care. But the seller should be ashamed of himself for false advertisement.DO NOT BUY.Also, note the fake 5-star reviews. This seller should be ashamed of himself. |
| 39 | 5286 | 1 | 5 | 4 | -0.692 | 0.125 | 0.317 | 27 | Didn't understand how to apply sceen. Need visual. This was first time and therefore messed up protector. No i wouldn't recommend it to a beginner. |
| 40 | 53113 | 5 | 1 | 4 | -0.485 | -0.229 | -0.691 | 49 | I used it for quite some time, and it worked well, but I had trouble getting my family to go to the site to view my photos and download them. Too bad, since you can upload large files. If you have friends who will want your stuff, get it. |
| 41 | 62213 | 5 | 1 | 4 | 0.197 | 0.000 | -0.441 | 32 | Purchased mounts for surround speakers. It's difficult to find mount that hold speakers over 15 pounds, so I'm glad I found these. Beware, they sell them separetly, not in pairs. |
| 42 | 13933 | 5 | 1 | 4 | 0.048 | 0.065 | -0.473 | 118 | I had a USB extension cable I was using to connect a USB hub to my laptop so that I could do stuff in bed. I think it had had previous use because it was showing characteristics of fraying inside. I bought this one because it said it was USB 2.0. Well, whether or not it was, it was cheap enough that I really didn't care. I plugged it in and it started working almost immediately. I did a test of transferring data from one of the external hard drives I have to the hard drive inside my laptop and I was able to get a data transfer rate of nearly 25 MB/sec. Very satisfactory. |
| 43 | 89457 | 5 | 1 | 4 | -0.649 | 0.326 | -0.629 | 77 | I received it yesterday, no delay, no problem. It works fine, I am actually using 6 of the 7 ports right now, everything works as described. I connected 3 USB3.0 portable 1 Terabyte discs,1 USB2.0, a 4tech mouse and a cable for synchronizing my HTC phone. I am using with my XPS15, it works like a kind of docking port, because I disconnect just one USB cable form my notebook and I can leave. |
| 44 | 5244 | 5 | 1 | 4 | 0.517 | 0.015 | -0.342 | 52 | I have no complaints about this unit. It works as advertised. DVD plays well and it is pretty much a no frills unit. The remote buttons are typical Sony- small and all over the place. The door is a tad slow to open. But otherwise a competent basic unit. Works for me! |
| 45 | 81265 | 1 | 5 | 4 | 0.924 | 0.179 | 0.663 | 148 | While on the surface this looks like an amazing gadget, it is not.The wifi capability only works if you:1 - connect your phone or PC to the device's private wifi network or,2 - make the device connect to your home/work wifi networkWhile number 2 seems like a good idea, the device broadcasts a mini-web/file-server, and cannot be secured when connected to a routable wifi network. So basically anyone who can figure out how to use a browser can look at whatever files you store on this thing.Lack of password protection when connected to a wifi network means that you will be reduced to using this as just a very expensive USB flash drive. And frankly I can point to several better ones to choose from right here on Amazon at a fraction of the price.Recommendation: Do NOT buy this item. |
| 46 | 14155 | 1 | 5 | 4 | 0.895 | 0.159 | 0.800 | 175 | Acoustic Research HP1020 Earbuds looked promising from the description, but they fell short in terms of actual performance. The first thing I noticed after plugging them in and testing them on several different devices is that the right side is noticeably lower in volume level than the left. For them to be useable like this would require adjusting left and right levels accordingly for each device they are used on. Next, the cords transmit a lot of noise into the earbuds, which I find to be very distracting, especially when listening to classical music or spoken word sources. As far as sound quality, they have a decent midrange, while the highs tend towards too bright and harsh. The lows are not impressive either, they are too muddy on bass-heavy sources. For the price-point they are at, there are a lot better alternatives out there to choose from. The only pleasant thing I have to say about them is they are comfortable to wear, and the various sized tips included are a nice touch. |
| 47 | 24585 | 1 | 5 | 4 | -0.039 | 0.138 | 0.516 | 56 | As other reviewers said, the case is not a secure fit and the magnets don't activate properly. The appearance is fine, but that does you little good if the product does not work as clearly advertised on the package. Targus needs to recall these... and by the way, I won't buy another Targus product. |
| 48 | 85616 | 1 | 5 | 4 | 0.673 | 0.151 | 0.732 | 99 | I didn't like these headphones at all, pretty much hated them from the moment I put them on. I gave them 2 weeks to try and get used to the fit, but no dice. The sound quality was sub-par in almost every way. I don't mean to be curt about these phones but I can't see any reason at all to buy them.Try the 15G instead if you want an Ultrasone. Much more comfortable and the sound quality is actually quite good. However, their claims about EMF reduction is not true with this model. |
| 49 | 24274 | 1 | 5 | 4 | 0.272 | 0.179 | 0.617 | 70 | The battery would not fit in the allowed space inside my Palm TX, even though it was advertised as a direct replacement. To get it to fit I'd have to remove the two brass posts/nuts that hold the bottom half of the case together. I ended up putting the old battery back in.So.. I don't know if its a good battery because it won't fit! |
--- End of Worst Predictions Table for Lexicon Ensemble --- --- Confidence vs. Performance Analysis for Lexicon Ensemble ---
| Confidence Level | Num Reviews | Accuracy | Close Acc (+/-1S) | MAE | |
|---|---|---|---|---|---|
| 0 | V.Low (0-.25) | 14236 | 0.140 | 0.453 | 1.517 |
| 1 | Low (.25-.5) | 17800 | 0.209 | 0.677 | 1.172 |
| 2 | Med (.5-.75) | 31608 | 0.364 | 0.921 | 0.748 |
| 3 | High (.75-.9) | 20854 | 0.660 | 0.950 | 0.413 |
| 4 | V.High (.9-1) | 1051 | 0.841 | 0.987 | 0.177 |
------------------------------------------------------
2025-06-21 00:30:26 - INFO - evaluate_model - Evaluation for Lexicon Ensemble complete. Evaluation for Lexicon Ensemble complete. 2025-06-21 00:30:26 - INFO - evaluate_models - Evaluating model: N-gram Enhanced 2025-06-21 00:30:26 - INFO - evaluate_model - Evaluating model: N-gram Enhanced (column: ngram_enhanced_stars)... Evaluating model: N-gram Enhanced... --- N-gram Enhanced Performance Metrics ---
| Metric | Value | |
|---|---|---|
| 0 | Accuracy (Exact) | 0.4157 |
| 1 | Accuracy (+/-1 Star) | 0.8151 |
| 2 | MAE | 0.8261 |
| 3 | RMSE | 1.1974 |
| 4 | F1 Score (Macro) | 0.2830 |
| 5 | F1 Score (Weighted) | 0.4463 |
| 6 | F1 Score (+/-1 Star) | 0.8981 |
| 7 | Precision (Macro) | 0.3370 |
| 8 | Recall (Macro) | 0.3053 |
| 9 | Cohen's Kappa | 0.1370 |
| 10 | Sample Size | 99,934 |
------------------------------------
2025-06-21 00:30:26 - INFO - save_worst_predictions_to_csv - Worst predictions CSV for N-gram Enhanced saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/worst_predictions_analysis/n_gram_enhanced_worst_predictions.csv --- Top 50 Worst Predictions for Model: N-gram Enhanced (Error >= 1) ---
| index | true_rating | predicted_rating | error | vader_compound | textblob_polarity | custom_score | word_count | text_preview | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 47795 | 1 | 5 | 4 | 0.987 | 0.167 | 0.529 | 317 | I won a pair of these through a giveaway that Comply Foam Nation was doing through their Facebook fan page. I was really excited to win a pair, they looked fairly good, they came with Comply tips(yay!), and they were free. As a reference, my other two pairs are a pair of UE 350s, and Sony MDR-V6s, both excellent in their own right for different reasons.So I opened the package when it arrived, put in the ear buds with the supplied tips, and thought, wow these are extremely uncomfortable. They are modeled after 9mm bullets, I felt like I put a metal bullet in my ear canal. They may look cool from the outside, but because the silicone tips provide no cushion, they are easily the most uncomfortable in-ear phones I have ever worn. So I swapped out the tips for the supplied T400 Comply tips. This is the reason we buy foam tips, they increased the comfort 500% easily. Good seal, no metal feeling against my skin, great.So I plug them in, and give them a listen. I listened over a three day period for probably 16-20 hours, to allow for some burn-in time(if you believe in such a thing, which I do). My overall impression is the base is out of control in these. My UE 350s are fairly bass driven, but these are another beast all together. Bass doesn't have a real sense of impact, it more covers every other range. Mids are extremely recessed, highs are non-existent. If I were a bass-head, these might be good choices, but as the bass is all consuming, and doesn't let any other elements shine through, I would look elsewhere.So in summary, out of a free pair of phones, really the only thing worth having were the Comply tips, at least that's something. |
| 1 | 20882 | 1 | 5 | 4 | 0.892 | 0.283 | 0.824 | 133 | Wonderful!...unless you care about speed or accuracy. It does feel good on the fingertips and looks good, and you may use it immediately after plugging in; smooth compatibility with Windows XP. It might be good in an industrial/shop environment with a staff of "hunt and peck" typists, but it's not a good fit if you can type well or type fast. Hitting all your keystrokes with the needed force reminds me of manual typewriters we used in high school (heh). Placement of the left-handed shift key is unusual as I keep making capitalization mistakes. As a tool to get your desired letters up on an e-document it is too wearying. I probably made 20 corrections typing this review. Bought mine an hour ago and it's going back. |
| 2 | 74283 | 1 | 5 | 4 | 0.944 | 0.408 | 0.715 | 50 | XP? and the specs of this machine were top of the line 12 years ago. This is just an old spec computer that cannot handle the promgrams of today with a new design. Don't be fooled. Go for a HP touch smart or better yet, the best an Imac. |
| 3 | 23197 | 1 | 5 | 4 | 0.991 | 0.022 | -0.048 | 551 | If I could give a product, and a manufacturer, a negative star rating, like a black hole, I would award it to Western Digital and its MyBook Live. I purchased this item in 2013. Be sure to search the user forums to understand the issues around this unit before you buy. The idea of the unit is terrific, the implementation shameful. Essentially, firmware updates have a tendency to stop the unit from being recognized by your network. My tech guy tells me it fries the chip on the board that does the clever connectivity stuff for this drive.When your unit fails, Western Digital will quickly offer you a replacement unit, and they will offer to put you in touch with third-party companies that will transfer the data from your broken drive. But that of course does not compensate for the hassle or cost of copying your data, returning your drive, and setting up the new one. The issue for me is that Western Digital have been living with this issue since at least 2010 and yet in 2013 we still have the same problem and we, the customers, pay the price.Lesson learned? If you have a MyBook Live and it is working, set your options to prevent automatic firmware updates (unless you are having a problem) and you may get some useful life from it. When it works, it is terrific. When it stops, it is devastating!20 June 2013 update. Western Digital gave me permission to pull the hard drive from the MyBookLive and suggested I buy a SATASATA/PATA/IDE Drive to USB 2.0 Adapter Converter Cable for 2.5/3.5 Inch Hard Drive / Optical Drive with External AC Power Adaptercable and extract my data before returning the drive to them. I purchased said cables from Amazon and connected up. While my computer recognized the drive, Windows File Manager could not see the files.16 July 2013 update. I tried a variety of software packages to enable me to see the files on the extracted drive, and failed. I contacted one of the data extraction companies recommended by Western Digital and I was quoted $3800 to $5300 to get my data back. I asked my computer tech guy and he did it for me for nothing. If you search online you will find many people offering advice on how to extract your data.So, I have my data back thanks to the kindness of one human being. I then got an RMA number from WD to return my drive for a replacement. However, I had to pay the $22 to return the drive myself and Western Digital will not reimburse that cost.In the meantime I have purchased from Amazon a Synology 112j driveSynology America DiskStation 1-Bay 2 TB (1x 2 TB) Network Attached Storage (DS112j 1200)and I have to say it is far superior to the Western Digital product in every respect. When I review that I will give it 5 stars.A final comment about Western Digital's Customer Service. I would have liked for them to have gracefully send me a post paid label, accept my faulty drive back, transfer the data to a new drive, and send that back to me. Surely not so much to ask for. |
| 4 | 23265 | 1 | 5 | 4 | 0.190 | 0.273 | 0.112 | 59 | Why? More misfires on my Canon 6D then was anywhere near reasonable...seriously 1/2 the time. I tried new batteries...I tried different devices. Always worked when I pushed the test button but rarely worked with the shutter button.(edited on 6/3/14 someone kindly pointed out that I had, in error, given the product 5 stars) |
| 5 | 98720 | 5 | 1 | 4 | 0.875 | 0.177 | -0.037 | 119 | I originally rated this 1 star due to receiving a defective unit and having to ship it back to Amazon for a refund. I figured I'd never buy another Anker product again.Surprisingly, I received an email from a customer support manager offering to send me another unit free of charge, and apologizing for the inconvenience of the defective unit.The working usb 3.0 hub arrived today and I tested all ports and everything is working. Really surprised with Anker customer support, you don't see much of that level of commitment to customer satisfaction anymore.If you have any problems with a unit you received, I'd recommend contacting Anker support, they will make things right. |
| 6 | 23396 | 5 | 1 | 4 | 0.997 | 0.089 | 0.386 | 569 | NOTE: Please excuse how poorly this review was written, I was trying to keep it short so it is almost just a list of facts...I had to write a review even though it will be so far down the list as to never be seen. IT was the one star reviewers that made me feel I needed to chime in. Some of them probably got a defective one, (which is frustrating) and I guess I can understand being upset and writing a bad review, but I also see people who clearly expected way too much from a tiny, battery powered $20 speaker. I also saw some from people who just don't "get it", so with this many reviews, you do have to expect a certain number of bad reviews. That being said, I am blown away at how good this little $20 speaker sounds! This is not a speaker to use if you are planning to blast your music in the garage as you work on your car or set on the patio table and listen to podcasts while you weed-eat! However, if you are going to play music or listen to spoken word stuff at a normal conversational, or even a bit louder level, this is a great speaker! I use it a minimum of 30 minutes a day, (usually at least twice that) while I take a shower and get ready, or when I am doing things in rooms other than the room where my computer is. I wish I could tell you how long the batteries last, but it has been so long since I replaced them I can't remember when it was. A long time is all I can say, and that is sing it at around 60% - 70% volume out of an iPod Touch. (I use regular Energizer batteries) And that includes several nights of being left on for 24 hours unplugged from the iPod. I mostly listen to audiobooks, but occasionally play music through it as well. When I have had to turn it up to around 80% - 85% to hear it over other noise in the room, it occasionally breaks up a bit with certain tones, but when it does I just bump it down until it doesn't do that, and it is still loud enough. The only quality issue (if you can call it that) that I could comment on, is you might need to take a small screwdriver or nail file, and bend the contacts in the battery case out a bit to hold the batteries more securely. The ONLY time this was needed was when I first changed the batteries, and all I had in the drawer were some cheap, off-brand batteries that had come with some other electronic device, to hold me over until I bought some new Energizers. Honestly, that was more the fault of the batteries than the speaker. The sound is crisp and clear when being used as it is meant to be used, and sounds better than any other small portable speaker I have heard, including a dual speaker AC only unit I have with an iPod dock in it. I am tempted to buy another one or two of these to keep on hand for when I finally either break, or wear this one out I love this speaker, and it is absolutely perfect for my needs. |
| 7 | 73878 | 1 | 5 | 4 | 0.735 | 0.267 | 0.624 | 46 | These were purchased to use in the Olympus FL-50 Flash and just do not have the power to work the flash unit. Standard CRV-3 non-rechargeable batteries worked great. These just do not compare, unless your device has low power requirements save your money. |
| 8 | 73786 | 1 | 5 | 4 | 0.931 | 0.110 | 0.801 | 159 | Unfortunately this is a rather low cost and fairly pointless entry level chat device for the system. One would think they would make something with actually good earphone on both sides of the device to use for playing games instead of just in one ear and not the other. It is also a step backwards in-terms of other offerings from the company as PS3 has some pretty good headset devices offering superior sound quality and chat quality from Turtle Beach. One can only hope that they bring the same level of quality to other devices on ps4.In any event, does it do as it says, it does but again the sound coming from he tv is much better than this headset. The chat capabilities are decent and sound level too but again its pretty awkward to have it in one ear, the other ear exposed to the tv sound as well, so it becomes an awkward experience. |
| 9 | 23862 | 1 | 5 | 4 | 0.999 | 0.212 | 0.705 | 912 | Third Update (2013):- Both radio's have completely locked up now and won't even turn on. I submitted multiple requests to Grace support online and they never responded. That being the case I would never purchase a Grace product again.*I'm usually very sceptical of reviews who rate products low and will always look around to see if this was just a one off product problem or someone who dislikes a company. As noted I had two radios that both died with the same problem with absolutely no support from Grace.Second Update(2012):- I originally rated this radio a 5 star and now have lowered it to a 2 star.Issues: BOTH radios over a few days or a few weeks start and develop weird characters all over the small screen that makes the unit unusable without removing the power at the back and resetting the unit. Once that's done the unit is back to normal. This happens randomly all the time now. I've tried firmware updates and nothing has changed. I will update the review with a screen shot shortly.- A few radio stations changed their format online and still stream audio that works on other devices and PCs. I go to the Grace Reciva website and the stations all check out normal and show functioning normal. I bring them up on both radios and neither radio works on these stations now. They both get caught in a loop saying "Connecting", "Retrying", "Connecting", "Retrying" and so on and so on. Most of the time I now find it easier to get an old IPHONE, set it to Wifi and sit it in speaker docking station. That works with all radio stations and I know every time I touch the screen it's on and ready to go.*If Grace fixed the 2 problems above I would rate the unit a 5 star but right now the units just sit gathering dust. I would high recommend not purchasing any version of this radio until Grace figures out the problems. I'm sure both are software related. *UPDATE(2010): I was so happy with my first IR2000 I purchaced another one for home.Original Review(2009): I originally rated this radio a 5 starThis is a great radio. I've owned it for nearly a week now and it's worked flawlessly. I was looking for a radio for my desk at work and I couldn't have made a better choice. Over the past few weeks I read every review I could find about every internet radio on the market. I finally decided on this one. I really love it. The sound is great but don't expect to be using it on full volume to cover your entire house. Here is my list of likes and dislikes and I hope it helps.Like's:- The size was perfect for my desk- It looks very stylish- I fired up the radio and had it working within minutes without reading the manual- It was very easy to register at [...] and automatically download my radio stations and streams.- I added some personal streams and they appeared on the screen of the radio within minutes.- It was very easy to browse stations around the world without the use of my [...] account.- The Audio sounded really good. Especially for the size of the radio- WIFI setup was very simple. I moved it from one network to another and it remembered both password keys (WEP & WPA)- The signal strength was really good especially with an internal antenna- Navigation on the screen was very simple.- When available it scrolled song or audio information across the screen. E.g. I tuned into aircraft traffic control after I added it to own streams after finding in on a website and within minutes weather information was scrolling across the screen.- The remote is simple to use- External input for an MP3 player, etc is a great addition- It can stream audio from just about anywhere.....Radio Station Streams, Pandora, Sirius, Your PC, any MP3/REAL Audio/WMA stream off the net....Dislike's:- The headphone jack is on the back. I use my headphone a lot and it's a pain having to pull the radio forward each time I want to plug them in. Some people may find it useful to plug other input devices in the front and others may find it useful to leave their stero plugged into the rear headphone port. Their should be an Aux (External) input on the front and back, and there should also be a headphone output jack on the front and back. That would accommodate every possible scenario.- Although it's good that the radio is light, it tends to slide a little when I press the select button at times.- I looked at the manual after I got everything working and it's laid out OK. They could lay it out just a little better.Conclusion.The radio is well worth the money. It's very easy to use and setup. The sound is great. The menus are easy to use. It's built well. In all it's a fantastic radio. If I were purchase another radio for my desk, beside my bed or on a table in the lounge room, I would buy another one of these for sure. In fact, I'm thinking about it right now. I give this one 5/5. |
| 10 | 23921 | 1 | 5 | 4 | 0.990 | 0.253 | 0.848 | 124 | Great security, strong performance ,easy to set up and use. Operates with many different devices smoothly. And best of all, best support of any company I've ever contacted. Unfortunately the tech support team I worked with was only hired temporarily by Lynksys and when this $200.00 router stopped working 14 months later the current tech support was more interested in charging for support and telling me the warranty was only good for 12 months. Needless to say I will not be buying any Linksys products in the future. I will be trying a new Buffalo router, this Texas company offers a three (3) year warranty and lifetime 24/7 tech support. Buffalo seems to have a little more confidence in their products. |
| 11 | 23999 | 1 | 5 | 4 | 0.848 | 0.189 | 0.642 | 143 | Router works fine with all of our stuff ,except the Epson artisan 810 .Would not could not connect. Also me and my computer I.T. son in law could not figure out even with a net cable how to set a new password up . Several hours and some mild swearing we gave up . This thing is way too complicated for Joe the Plumber . I even called customer support . Nice People to deal with . Its going back a.s.a.p. . It took me 10 min. to put the old netgear back and reset all of our stuff . The printer also is working again .the people at media b. are awesome the are trying to save their jobs ,maybe that is why the are so friendly........ , 0 Stars for the 300 Router, it is sub standard .........I don't Write reviews to hurt people . |
| 12 | 24010 | 1 | 5 | 4 | 0.735 | 0.208 | 0.762 | 84 | I used this trackball for 10+ years with various PCs and was happy to find it claimed to be compatible with MACs. Initially it worked, but stopped. Took it to Genius Bar and found out it had basically burned out my logic board. Very expensive repair when not under warranty. For the record, I have 13" MBP running OS X Lion. Also worth noting that it no longer works on my Sony Vaio either. Buh bye Marble Mouse. It was a great 10 years. |
| 13 | 73458 | 1 | 5 | 4 | -0.310 | -0.033 | -0.450 | 55 | I would have given this a 5 star if only wanted the product for a laptop. This item does NOT work with Tablets. I contacted the manufacture to confirm. This needs to be better indicated on the labeling. With todays presentation being done on tablets, it is disappointing the company did not offer a solution. |
| 14 | 73332 | 1 | 5 | 4 | 0.893 | 0.230 | 0.664 | 69 | It's funny to me that in the MP3 market with all teh possibilities out there for form factor that this company like so many others out there choose to manufacture an iPod look-a-like. Why not get the real thing and get yourself an iPod. This product like all copies of iPod are worthless. Apple like it's computers makes the best MP3 players in the world. |
| 15 | 73311 | 5 | 1 | 4 | 0.753 | 0.044 | 0.735 | 162 | Allow me to begin by saying that all of the 1 Star reviews where people are attempting to use this drive as a permanent hard drive are NOT doing what this great hard drive was designed for. It's clearly a "To-Go" HDD as stated in the "GoFlex" title. Any other 1 Star review's quality is for you to decide.This hard drive is rated at 1.5 TB, or 1,500 GB. With such a high amount of data storage, I highly doubt that the average computer user would ever utilize all of it. However, hardcore space consumers are excluded. This is a great hard drive that does what it's supposed to do.It connects through USB 2.0 technology and must be plugged into a proper electrical outlet, indicating that it's intended to be used on desktop computers. I still think that you shouldn't have to install technology for it to work, but oh well. |
| 16 | 24364 | 1 | 5 | 4 | 0.899 | 0.180 | 0.806 | 116 | I bought this for my 8 year old grandson. I doubt it even lasted a month. It still turns on but its on a lock screen you cant get out of. Tried to contact the manufacturer, unable to do so, their website has no working links. Had a Square Trade policy on the tablet, who referred me to the manufactuer. Contacted Amazon who also referred me to the manufacturer. Talk about a run around. Amazon made good on the deal as a good faith gesture. I would suggest buying a known name for a tablet, Samsung, Apple, etc, at a cost of roughly twice this one you will have a tablet that lasts years not weeks. |
| 17 | 73090 | 1 | 5 | 4 | 0.790 | 0.422 | 0.822 | 79 | I bought one at Sears at $12 earlier and they were the most awesome earphones in this price category. In fact, they were so awesome that after I lost them, I went to Sears to buy them again, but they were out. So I bought it here instead. But the sound of these are nowhere near the quality of Sears. Instead, they sound like a Chinese earphones bought at 99c at Meritline. I do not think they are genuine. |
| 18 | 72965 | 1 | 5 | 4 | 0.382 | 1.000 | 0.665 | 22 | They do their best to adapt one thing to another, but it doesn't always work. This is one of those cases. |
| 19 | 72574 | 1 | 5 | 4 | -0.511 | -0.008 | 0.055 | 192 | had this for 4 months before the headphone port broke. It never moved from my desk or had any trauma that could cause something to break. Called the company (suppose to have a great warrantee) after a hour of "trouble shooting" over the phone they offered to take a fix it if i shipped it to them. Shipping for the heavy speakers would be fairly expensive (over 30% of purchase price), and since it works fine as regular speakers, and i haven't sent it in to get fixed. Just miffed that it broke so fast, and that customer support didn’t even sound like they cared or that a small inconvenience like the headphones not working mattered. Rep said "Well they are speakers, why would you use headphones "Autoturn off feature: after 30 min of no noise the speakers turn off. Completely off. Worthlessif i didn’t have a bad experience with it breaking after a few months, a rude customer service response, costly repair/warrantee policy, and the horrible auto off feature, these speakers would be a 5 star review because they sound amazing. |
| 20 | 50325 | 1 | 5 | 4 | 0.951 | 0.241 | 0.834 | 142 | Loved this router initially but it died after just 6 months. It replaced my original Linksys WRT54G, which was like a rock. I upgraded to utilize wireless N on the E4200. The router at the end constantly needed rebooting. It seemed to happen after the last Firmware Update Ver.1.0.05 (Build 7), the router also ran a little hot. I've now replaced it with a Netgear WNDR4500. I have to say I love the Genie set-up on the Netgear, no degree in programming required. However one quirk I did find with the Netgear was that with Genie you could not rename the 5 Ghz SSID, you had to do it from the web interface. Overall I am more satisfied with the Netgear, it seems to be of a more solid construction and the interface is easier to use. |
| 21 | 72284 | 5 | 1 | 4 | -0.951 | 0.028 | -0.629 | 586 | I received my GTM 25 Traffic Receiver with my Garmin Nuvi 1490 LMT. For this reason, because I did not purchase it on Amazon, you won't see my review as a "Verified Purchase". Because I despise fake reviews, and I want people to know I really do have and use this product, I posted a photo of my GTM 25 Traffic Receiver....This cord has a special gizmo on the end of it that transmits real time traffic updates (traffic jams, road construction, detours, etc.) to your Garmin via FM radio transmissions. But I didn't know this when I first got it. I thought it was just the dc power cord that fit into my car's lighter port.I first realized this was more than just a power cord when Garmin gave me instructions to get off the highway I was driving on, to go around a traffic jam I didn't even know was ahead of me. The only bad thing I have to say about this is I wish Garmin told me why it was instructing me to get off the highway. If it had, I would have followed the instructions I was given, and I would have avoided a 90 minute traffic jam. If you'd like to know how I found out this was a traffic device, see below.I was driving through Portland Oregon, north on I-5 in typical heavy traffic. Traffic was heavy but traffic was moving along at or above the posted speed limit. I had taken this particular route at least 20 times before, in recent weeks, so I didn't really need Garmin to give me directions, but I had her plugged in anyway, out of habit. It's a straight forward route, nothing complicated, a run straight up I-5, north through Portland Oregon and into Washington. I expected no problems.Suddenly there was unusually heavy traffic, everyone slowed down from about 55/65 to about 45 mph and the road appeared to be getting very congested. I couldn't see any problems ahead (other than all the cars and trucks slowing down), could see no road signs or construction to indicate a work zone, didn't see or hear emergency vehicles, and nothing about the traffic jam was on local news radio, but, because of the GTM 25 Traffic Receiver, my Garmin knew there was a large traffic jam ahead, in real time, and tried to get me to go around it.Ms. Garmin politely but sternly gave me instructions to get off I-5 and take side roads. Unfortunately, at the time, I thought my Garmin was malfunctioning, because I never had to get off I-5 when I drove this regular route before, so I ignored Ms. Garmin's instructions, no matter how many times she urged me to take the next exit. Soon after passing up every exit available to me (that Ms. Garmin told me to take), I ended up smack in the middle of a traffic jam going about 10 mph, with no way to get off or go around.I later learned, by inspecting a detailed map of the area, had I taken any of the alternate routes Garmin was prompting me to take I would have avoided the traffic jam. That traffic jam lasted nearly 90 minutes. I now plug in my Garmin for every trip and pay close attention when Ms. Garmin tells me to do something that's out of the norm. |
| 22 | 25288 | 1 | 5 | 4 | 0.815 | 0.190 | 0.782 | 94 | The router was inoperable upon arrival and be forewarned, there is NO customer service information in the packaging or the box. No toll free number to call; No web site URL to go to for customer support. When I went on-line and found their web page, I was never able to speak to someone in technical support about the router. Non-existent customer support.I returned it to Amazon; (A hassle-free process which, as a consumer I appreciate), and bought a Belkin wireless G router. So far, so good with the Belkin. |
| 23 | 25615 | 5 | 1 | 4 | -0.781 | -0.143 | -0.763 | 75 | If you're going to get a bus-powered hard drive, this is the series to get. The cheaper, slimmer G-Drive is frustratingly slow. Worse, I've seen that drive suffer read errors -- worse than pointless if you're using it as a backup.I've had several of this series G-Drive (made by Hitachi), and all have worked flawlessly. It's a bit expensive, but it does what's needed without issue. |
| 24 | 25724 | 1 | 5 | 4 | 0.956 | -0.059 | 0.075 | 340 | The down side is that I need the receiver within a foot or so of the keyboard, or it sometimes stops working, skips keys, or works intermittently. I've replaced the batteries and tried every one of my 16 USB ports. I've used both the buttons to relink the board and transmitter to no avail. I have it plugged into my monitor which is about a foot from my keyboard. It always works now, but sometimes it still sticks and wriiiiiiiiiiiiiites like that.I also don't like the way the F keys are labeled. They are marked on the keyboard, not the keys, which makes the numbers hard to see.If the wireless worked better, it would be 5 stars.Update:The range on this thing is just horrible. I'm going to open the transceiver and install my own antennae using thin copper wire. I'm also looking for a gain dial. Some transceivers have gain dials you can increase. At this point I've wrapped thin gauge copper wire around the transceiver and extended it above my work station and it really helps. I read that you can also use a long USB cable to extend the range by hanging the transceiver from the USB cable above your desk.Update:I used a 10' USB cable and hung the transceiver above my work space by hiding the cable behind curtains. I did not hide the transceiver itself. The USB cable is plugged into the back of my machine. After two days I have not had one skip or stutter. I believe what is happening is that the USB cable is acting like a long antennae. The transceiver is about 6' from the keyboard.Update:Started skipping and sticking again. I've actually had too many problems with this POS other than my posts. The Wireless has just never worked well. Seriously. I have 9 dollar mice that never miss running wireless. I'm buying another wireless keyboard soon, and it's name won't be Microjunk. |
| 25 | 23089 | 1 | 5 | 4 | 0.980 | 0.162 | 0.545 | 478 | Howdy all,Just wanted to add 2 cents to this list of reviews for tf700...Kind of forced to jump ship after heat problems and crashing surfaced with another tab I bought early in July.Must say the difference between this tablet and the other brand tab I just returned is night and day.Spectacular performance and well thought out simplicity make this device top notch!General likes;Very quick (especially when forced into high performance mode)Wifi performance is super (no loss of signal 75 feet from router)No door over the micro SD slotSingle speaker sounds good to meDirect wifi works great8 mp camera records very nice images in 4:3The CPU runs at 120 degrees consistentlyFits in the folio cover I bought for my returned tabletJust one dislike;The proprietary connector Asus insists on using for the keyboard dock.Wish there was a micro USB host port on the side.Great job Asus!....update 09/21/2012....After 2 months I still have to rate this tablet high.I've learned a lot about Android and the Infinity.There are so many resources on-line which can help those of us not in the know.I find the TF700T totally enjoyable and have no manufacturing orperformance bugs.Been my experience if you go looking for the bad you'll find something.5 stars!... glad I bought this device...I feel I did not go wrong here.....update 10/22/2012Just installed Scotts CleanROM 2.3 on my Infinity.This is like buying a new tablet!With this ROM the TF700T screams.I would highly recommend installing CleanROM.Now I have the tablet I really wanted.......update 12/02/2012For those who don't mind tweaking a bit I recommend flashingCleanROM Inheritance 2.7.It's available on the XDA website in the TF700T section.Flashing this newest version has made this tablet absolutelyamazing!...update 02/17/2013Running CROMi 3.3 on this tab for a week now.Surfing is supreme with the Android stock web browser!The multi-launcher feature with CROMi is just sweet.My infinity has climbed to new heights after such a dismalstart with stock Jelly Bean.update 09/10/2013Well after 13 months looks like the TF700T finally died.Haven't been able to get it to boot for 5 days now.I'm probably into this thing with accessories for about $650.00.From what I read it may magically return to a working state.Not really expecting that to happen though.Very disappointed!I won't darken ASUS's door with my business again.Moving my rating to 1 star (actually rating this device at zero however)10/20/2013Welp finally just tossed the tablet in the recycle bin today.Wish I never would have fallen for this tablet.Good riddance to this POS it truly is electronic garbage! |
| 26 | 22830 | 5 | 1 | 4 | 0.974 | 0.261 | 0.207 | 149 | This is not cheap stuff. It seems to draw the full 2A current that your Note 3 needs to charge rapidly. I wish it came in black or white but other than that this is a great cable. Just as good as the cable that my Note 3 came with. Well worth the price.I bought one to try it and now I am buying 2 more. 1 for the office and one for the car. May even buy more so that I can charge my Note 3 anywhere I need to.BTW, I did not have a problem with the cable interfering with the protector case for the phone. I have 2 Spigen cases and both work fine with this cable. So I really have nothing to complain about except for the color of the cable! and I can't take away one star for just the color! |
| 27 | 74574 | 1 | 5 | 4 | 0.917 | 0.092 | 0.494 | 195 | I hope that someone in your company cares:2 years ago, I bought a computer with a faulty motherboard board.Eventually, after after difficulties, Toshiba replaced my original motherboard with another faulty one.It took me a while to realize that "new" motherboard was faulty, by that time warranty expired and Toshiba would not replace it.So my experience with Toshiba is that:They sold me a malfunctioning computer, it was hard to get a warranty service and when they finally replaced the motherboard, they gave me one that was returned by another customer because of the intermittent error which they were not able to verify. I am now stuck with that.My interaction with Toshiba technical support was extremely unpleasant, andI WILL NEVER AGAIN BUY A TOSHIBA COMPUTER, NOR ANY OTHER TOSHIBA PROBUCT.Unless you take responsibility for this situation, I will also recommend to everyone to stay away from Toshiba.Will write my opinion on Amazon, and every other place where Toshiba products are sold.I hope that hundreds of people will change their mind and buy Dell instead, because they had excellent, friendly and caring support team, willing and able to help. |
| 28 | 21517 | 1 | 5 | 4 | 0.852 | 0.209 | 0.797 | 61 | The Amod takes forever to track satellites and triangulate your location. Once it does its lock on the satellites is only so good. The performance on cloudy days was not very good. Once it did work it did track your location, and it was relatively easy to merge with pictures. I would not buy again. More trouble than it is worth. |
| 29 | 76286 | 5 | 1 | 4 | 0.996 | 0.187 | 0.596 | 882 | I was scared to buy this seeing the one star reviews but I figured at the price ($79 on Amazon) I could give it away if I was not happy with it. I know a lot of poor people who would be very appreciative to get anything for free. I have now owned 6 digital cameras. The two being the ones that I used the most were a Canon 2 mp ultra compact one I bought about 8 years ago, and a Samsung 8 mp compact one I bought 4 years ago (Digimax i85 http://www.amazon.com/Samsung-Digimax-Digital-Camera-Optical/dp/B000VQ8MB2/ref=sr_1_4?ie=UTF8&qid=1324849121&sr=8-4). The other 3 cameras I bought were too bulky and I gave them away to family pretty quickly.My general experience with digital cameras after 8 years of using them is they don't last forever. And usually when they break I'm angry that I spent $250 to $400 on it. So with that in my mind I wanted one under $150 with an optical zoom, compact size, and HD video (at least 720p). My Samsung broke on me while I was home on vacation (I work overseas and don't see my family much in person). I bought the Samsung based on a recommendation from the techy comedy news show called "Attack Of The Show" and they loved it. Well I hated that camera but I had a good amount invested in it so I kept it. I'm happy now that it broke because now I have a camera I really enjoy, this Kodak.The Kodak was much under $150 it was even cheaper then $100, so that was a easy pick. On top of it having an optical zoom, and HD 720p video, it has a rechargeable battery, a great bonus as I hate throw away batteries if I can avoid that. So I took the plunge and got it a week ago. I know I am in love with this camera because despite it being so inexpensive it's very very fast! This camera takes pictures the instant you click the shutter, I have never had a digital camera as fast as this one. The pictures so far have also been very sharp using the smart photo setting (everything auto). I also just tried out the video (720p) and it looks very sharp compared to my low resolution cameras before. Kodak provides a simple book with it and online a pdf book thats more detailed. They also have video instructions online which I thought were cool to watch and a help since I like to only turn on a camera and start shooting assuming it can do everything on its own.The camera can do editing and has instant sharing to your Facebook page but I am not interested in those features as I will crop the photos and such using my laptop, but they are there. And I can pop out the memory card and download the photos myself, but it's on there in case you like that. I really like that it has a film start button and a separate photo shoot button so you don't have to switch modes, that is the first camera that I've owned to do that, very easy to operate. The auto settings seem very good, they are called smart photo, and the camera really seems to be great in auto. I have not played with the sports modes or such but may as I gain experience with it. It seems to be doing a great job just on its own so I may never ever mess with the manual controls!Overall for a $79 camera I rate it a 5 out of 5, I may buy another one and keep it until this one breaks so that down the road I'll know I have another one of these around, I'm that happy with it. This is my first Kodak product and I always considered them low end because of the price and old Instamatic camera days, but hey, I'm a Kodak customer now, GOOD JOB!BTW I read when from anothjer review here, I was buying this, that it only took up to a 4gb card, the manual says it takes up to 32gb card so I'm bummed that I bought a smaller card then I wanted, so keep that in mind. Also one of the one star reviews talked about their daughters camera freezing up, the firmware upgrade on Kodak's site says that is there for a freezing issue, so that may have fixed it before it died. The other one star review was about one purchased on Ebay so possibly it was used and abused, who knows. Sometimes you get varying tolerances between the same model so maybe they just got lemons, maybe peoples expectations are too high for a under $100 camera, maybe people are trolls and are trying to kill Kodak from selling their products, who knows, I know I really like mine and wanted to share that with the Amazon community.5 out of 5, great camera for the price and really a great camera for something as compact as it is! |
| 30 | 21021 | 1 | 5 | 4 | -0.667 | 0.153 | -0.140 | 90 | Dont know why it has so many 4.5 stars. I found this bag unappealing and uncomfortable. May be good for my 4 yr old son but not for my height (I am 6 ft tall). Capacity is ok. Functionality is terrible. I tried to slide my tripod into the side straps but doesn't fit. ABSOLUTELY will not look classy as a backpack. I ordered the Caselogic DSLR sling (much more classier looking). Bottom line, I am returning it. Seriously, still don't know why so many good reviews! |
| 31 | 76102 | 5 | 1 | 4 | -0.886 | -0.038 | -0.623 | 119 | This is what I ordered but it is not what they sent. I was going out of town and what arrived was not what was pictured or what I wanted, needed, or could even use. I have not sent the item back because it is just too much bother and I went out and got what I needed as I needed it then and not after a long hassle trying to return the wrong item. I have graded this high so as not to punish the vendor for what may have been Amazon's mistake. If anyone at Amazon bothers to read this, tell me how to correct the problem without it costing me an arm and a leg. |
| 32 | 75857 | 1 | 5 | 4 | 0.872 | 0.092 | 0.780 | 73 | One of the ear buds went silent after about a month of use. Plus the cable is way too long and very thin. I'd go with senns. Those are the best earbuds I've every owned. Durable and great performance. Be careful about the symmetrical and asymmetrial cords. These are symmetrical. Some of the Senns are asymmetrical that takes a little getting use to since the right cord goes behind your neck. |
| 33 | 21268 | 1 | 5 | 4 | 0.942 | 0.243 | 0.681 | 125 | The price was right. My son was happy. Then we went to put it in the 2006 Malibu. Best Buy wanted $160 to install. I guess it needs an installation kit or something for the Malibu we have with the single panel? DO NOT BUY a stereo for the Malibu without carefully checking out the installation. It is one of the few Malibu/Chevy's that needs a special strap and i've had quotes of $180-250 to install. If you know what you are doing, you might be able to purchase the additional strap (at a cost of $70-90) and still save yourself the installation fee. Now i'm losing the 20% restocking fee and i'm not very happy about it! |
| 34 | 21294 | 5 | 1 | 4 | -0.827 | -0.104 | -0.469 | 167 | I was shocked when this came in the mail at the size of it... The screen is NOT 2" horizontal as I was expecting, it is 2" diagonal. DUH! It's cute, just a lot smaller than what I was expecting...Plugged in the usb cable, opened the folder, deleted all the music, pictures and movie crap they put on there... Moved my music on over after creating folders for 'rock' 'new age' 'classical' etc... and away I go.Don't understand why this is so expensive on Amazon... I got it for $130 on ebay...First problem - can't delete songs directly from the player, have to plug it in to the computer and delete them that way.Second problem - there is no way to turn the unit completely off. The off button puts it in 'standby mode' and if you touch it, boom it comes right back on. It can stay in standby mode for up to a day thereby draining the battery. Not optimal. |
| 35 | 75698 | 1 | 5 | 4 | 0.585 | 0.143 | 0.437 | 154 | Purchased this unit via Amazon on 1/2/11. It arrived a few days later.Recently, when turned on in the morning , a 18" wide, purple stripe appeared on the left side of the screen - 18" !!Purple showed up in the image where dark shading would be normally. Very distracting.I thanked my lucky stars that I bought a Square Trade 3 year warranty. Service repair contacted me and I sent some photos.They assessed the problem, and on determining that it was not cost effective to repair, gave me my full purchase price back! Hallelujah.DO NOT PURCHASE a VIZIO.Great picture and sound for one year, then garbage.I have a Zenith that is on EVERY morning. It's over 20 years old!I'm leaning toward a Sony to replace it. Every review I've read give 5 stars.I just hope this is not an endemic problem with LCD screens. |
| 36 | 21435 | 1 | 5 | 4 | -0.761 | 0.106 | -0.356 | 84 | Amazon deserves five stars for quick delivery, but unfortunately the DVD player had problems. The tray wouldn't open without some hearty pushes and then the player didn't recognize a disc was present. Tested the DVDs in my other player to make sure they were okay, they were. I have other Sony products which have given me no trouble whatsoever so this one failure won't put me off Sony. I returned the DVD player and got a Philips instead which works great. |
| 37 | 21478 | 1 | 5 | 4 | 0.987 | 0.224 | 0.841 | 267 | I know I use to have a good review of this product, but that was until I used it for an extended period of time. (I apologize to all those that I convinced to buy this.)The product is a good product for keeping gps logs, but that is only when it actually works. I have owned this product for almost a year and up until May (6 months of ownership), it was a great product. After that I went on alot of trip, so I never had a chance to clear the logs off the unit, but according to the software, the memory still had more than enough room after each leg when i could check it. I just recently figured out this is because it wasn't actually keeping logs of anything.The GPS still had all the usual lights that it had prior to May, but after mid May, the logs fell empty. Upon checking the unit, it showed 1% full, but the last logs were May 5th.If you are adamant about seeing where you have been, or geo-caching, I recommend that you NOT by this product; it will get you feeling confident about it's relibility, and once you feel confident, it will let you down. I have no logs of 2 months of traveling to China, Hong Kong, and Japan. It has ruined the memories of my trip. Great trip memories, first ride on a bullet train (talking with my mom about how the GPS logs probably look so cool with the speed we are going), runied by this GPS. |
| 38 | 21480 | 1 | 5 | 4 | 0.681 | 0.550 | 0.814 | 45 | I purchased these to use on a 7 day cruise to the Caribbean because we were going snorkeling on two of our stops. When we got the pictures developed the quality was grainy and the wether conditions were perfect. I would ot recommend purchasing these |
| 39 | 21530 | 5 | 1 | 4 | 0.996 | 0.153 | 0.758 | 312 | The case is small and cute like my kindle. The purple and black look nice. Case is made pretty well and the price is good. It was more expensive than some prices people are saying they paid but even having to pay shipping it was less than $20. Fintie shipped pretty fast it came by USPS in 2 days from Ohio to California. I've paid for shipping in other things that look forever to go out and seemed to stay in limbo somewhere.This is the second Fintie case I have purchased. I got the leopard print one for my Goddaughter's kindle Fire HD last year. That one was also nice and it seems to be holding up well. She loves leopard print and was extremely happy with it. I git her sister a "ProCase" brand in her favorite color. She loves hers too but it smelled so chemically. Since I ordered both together, I'm not sure if the Fintie smelled too but I aired both out before giving it to them. I think it was just the other one that smelled tho this Fintie I got does not stink.Besides the style of case I LOVE the big selection in colors and patterns, especially for the price.This is still a great case, no issue with breaking spine (yet) i saw a one star review because there was only one magnet. Not sure if its a defect or not but it doesn't need 2 magnets. The case is small because the Paperwhite is small The cover stays closed very well. I love the magnet feature because it shuts off kindle when you close cover. When you open it, just have to swipe screen to unlock from "special offers" screen.The price is amazing compared to other cases that don't even have the auto sleep/wake feature. |
| 40 | 74740 | 1 | 5 | 4 | -0.972 | 0.083 | -0.653 | 861 | I purchased two of these drives, one for a working drive and one for a backup. For the first month or so I was very happy with them and would have given them 5 stars, but then the troubles began. The first drive began hanging my computer and going into read only mode. At first it passed diagnostics, but the problem got worse over time. Once it started failing diagnostics, I was able to return it for exchange under warranty. Seagate's warranty process works, but first time through, it is almost impossible to use. I had the same problem others did with their site telling me it could not identify the drive even through I was entering the numbers on the drive that matched those their own testing software supplied. They need to fix this. I had to resort to opening a ticket (could never reach them on chat or by phone). Their support staff gave me numbers that the web site could use for the return. Drive arrived yesterday, seems to work ok. Jury is still out though. Now the second drive is malfunctioning. When I went to restore my files from the 'good' backup drive, which seemed to work well throughout all of this, it would hang after copying files for more than an hour. It did it repeatedly. I finally resorted to copying my backup files over manually in small chunks that would copy in a few minutes. I then tried to back-up again and the system hung after about 100 gb. So I reformated the drive and tried again, same problem. It appears the drive is 'going to sleep' when it shouldn't and hanging the system. I've read a lot of complaints about this. I have tried downloading the new software that Seagate support suggests, but this software is almost useless. It does not allow you to change the sleep behavior of the drive, it only lets you test it and control the status lights. Big waste of time there. All-in-all, if you want trouble free drives, don't buy this one. This drive has too many gremlins to have to deal with. It has an enticing price, but storage is too important to risk for a low price. As for Seagate's support, if you don't mind waiting 24 hours between asking a question and getting an answer, the go ahead and try using it. The most useful thing I got from them was an "I'm sorry your drive is bad, use these numbers to return it under warranty". I will return this one too so the company can pay the cost of producing defective drives. I would recommend everyone having problems with these drives return them under warranty, don't just give up. Unless seagate has to eat the cost of high returns, they won't fix the problems.UPDATE: 11/12/2012Here is the latest update on this problem: As I said in my review, I purchased two of these drives, one for a working drive for my iTunes library and one for the time-machine backup. After one drive failed and was replaced under warranty, I continued to have corrupt drive issues. They would work together fine for several days and then I would notice corruption starting when I ran verify disk in disk manager. I would fix the problems but eventually one of the drives would become un-repairable and I would have to rebuild it. In a fit of frustration, I unplugged one of the drives and left the other running. Low and behold, the corruption problems stopped. Apparently, my two drives do not play well together, even though they are twins. I tested this by alternating the drives and this appears to be the case. The solution to the problem was to only use one of these drives at a time with my Mac and to use a different manufacture's drive as my time-machine backup drive. Been running this way since late June without a problem. Unfortunately, Seagate support was unable to help me diagnose this problem as I was never able to connect with a support representative directly by using the link they suggested. Support was always off-line when I tried, e-mail was the only option and with a two-day turn around time it was not useful. One more data point: I have both USB and FireWire interfaces for these drives, and the problem doesn't appear to be related to the interface used, simply to the firmware of the drive. Also, I've re-tasked the second drive on a different computer and it has been working fine since June as well. Net-net: Don't use more than one of these drives at a time, one or both will become corrupted. Unfortunateliy, my overall experience with these drives and Seagate's support is still one-star. I am happy I was able to use both drives and not waste my money, but since I wasn't able to use them together on the same computer as I wanted, I can't change my rating. |
| 41 | 21723 | 1 | 5 | 4 | -0.536 | 0.275 | -0.106 | 73 | Originally I placed a 5 star the first day i received it.well i wish I'd waited to write a review. I order 2. The first one broke within 1 week the second broke within 2 weeks. Now we have no chargers for the tablets. Maybe I need a better tablet? I dont know, im convinced this will continue to happen regardless of the brand of chargers.Now, I'm out $20. |
| 42 | 21803 | 1 | 5 | 4 | -0.832 | -0.068 | -0.498 | 171 | Let me start by saying I hope to change this to a 5 star review. After going through the setup wizard, I was able to connect to the extender. However, signal strength was poor less than 40' away, line of sight, with the only "obstruction" being a plexiglass window.I proceeded to update the firmware, and received the error InvalidImageFile.seconds. I understand from Amped's forums this is not uncommon. I phoned in for support (a first for me) and talked to a man who was helpful, but very short with me. I assured him the problem was not that I had forgotten to unzip the firmware file.After only a few minutes on the phone, he asked how many lights were on the front of the router. When I replied "one", he said it was defective, so I'm returning it. Again, I hope to turn this into a 5 star review. I have my doubts, though, since signal quality was so poor before the failed firmware upgrade attempt. |
| 43 | 21842 | 1 | 5 | 4 | 0.756 | 0.406 | 0.658 | 38 | Wanted to use this for my Definitve Super Cube 6000 and right out of the box it didn't work. I just chucked it, didn't want the hassle of returning it. Should have bought a nice model. |
| 44 | 75379 | 1 | 5 | 4 | 0.981 | 0.194 | 0.683 | 219 | This is a great idea but the end product is lacking. The headband is what the name implies, a headband. It does not work well when you pull it down over your ears considering it rests on your eyebrows on the front of your head unless it falls completely over your eyes, which works as a great way to shut out the light if the discomfort doesn't bother you as it did me. The speakers are nice quality but the way the cord enters the back of the headband going to the speakers is a nuisance. At the point where the cord enters the headband, there is a Velcro mechanism that makes sleeping on your back with the headband very uncomfortable, as it pushes into the back of your head as you rest. Side sleeping is also a nuisance since the speakers are pushed into either ear, depending on which side you sleep on. If you really must have a way to listen to music while you sleep without disturbing your partner, find another alternative. If you can play music through a stereo/radio softly while you sleep, go with that, as it suits me, and perhaps you too, much better. I think with better planning this product could have been amazing but there was no such luck. |
| 45 | 21937 | 5 | 1 | 4 | 0.915 | 0.177 | 0.810 | 146 | First thing, when I opened I package, I was like why did I spend a lot of this stupid case, not at all as expected. Anyway, wanted to give it a try. Started with minus one star.Opened the package, good packing and everything, of course for the price.Started with applying the screen protector on my phone screen, Fitted my screen perfectly. Plus one star.I started putting on the case. As the description said, this is a hybrid case. Silicone rubber case did fit easily, then a Polycarbonate shell on top of that. Silicone cover is very dust clinging, double casing made my phone a heavier. Minus one star.Way too pricey for all this. Minus one star.I like the look, not that bulky. Plus one star.Bottom-line, I find this case very protective. Add a star there.Final Rating - 5/5 |
| 46 | 75306 | 1 | 5 | 4 | 0.986 | 0.284 | 0.553 | 143 | I purchase the flip for my mother as a Christmas gift. It worked great for about 6 months. Very handy and easy for her to use. Great picture and great software for PC and MAC. Loved it! Great value, so we thought. Then it wouldn't work all of sudden. Never dropped or mishandled. I worked with tech support and couldn't revive it. Only came on with the little flip beep and then turned back off. I sent it to the company to be repaired. Got it back about 40 days later. It worked and they fixed it for free even though it was beyond the warranty! We were so happy. Then on the next outing. Dead. Wouldn't work again. Since the warranty is only 90 days, there is nothing to do, except complain here and get another brand. Sorry Mom! |
| 47 | 75286 | 5 | 1 | 4 | -0.957 | -0.312 | -0.700 | 66 | I bought a Sandisk 32 gb card but I higher read/write speed for my Canon 50d, I had alot of problems with it (couldn't download pics to my computer). It appears that either the card was bad (all tests on it showed no problems though), or there was a compatibility issue. I returned the card and bought the slower speed, no issues at all! |
| 48 | 22069 | 1 | 5 | 4 | 0.981 | 0.169 | 0.678 | 112 | I bought a new laptop pre-installed with Windows 8. The interface is great for apps designed for the OS but for legacy software it is a nightmare. The legacy desktop app looks like a good old desktop except that it lacks all the useful features, like a start menu or direct access to drives. Simple things like launching an application from a CD or browsing a drive are very complicated. I am sure there are ways to do all the things I want to but why would I have to read a manual to do things that have been done simply and elegantly for several decades on every other graphic OS. |
| 49 | 22156 | 1 | 5 | 4 | 0.937 | 0.204 | 0.678 | 76 | While this sounds like a good idea in the text, in reality it doesn't do much to improve the screen quality. The difference with and without the screen is barely perceivable, at least with my Nikon AW 120. Quality of the plastic is marginal at best, and I'm sure the little plastic tabs would not last long, The adhesive strip seems barely adequate for the task. I'm sending mine back for a refund. |
--- End of Worst Predictions Table for N-gram Enhanced --- --- Confidence vs. Performance Analysis for N-gram Enhanced ---
| Confidence Level | Num Reviews | Accuracy | Close Acc (+/-1S) | MAE | |
|---|---|---|---|---|---|
| 0 | V.Low (0-.25) | 14236 | 0.174 | 0.603 | 1.262 |
| 1 | Low (.25-.5) | 17800 | 0.252 | 0.848 | 0.954 |
| 2 | Med (.5-.75) | 31608 | 0.488 | 0.935 | 0.610 |
| 3 | High (.75-.9) | 20854 | 0.750 | 0.947 | 0.329 |
| 4 | V.High (.9-1) | 1051 | 0.885 | 0.987 | 0.133 |
------------------------------------------------------
2025-06-21 00:30:26 - INFO - evaluate_model - Evaluation for N-gram Enhanced complete. Evaluation for N-gram Enhanced complete. 2025-06-21 00:30:26 - INFO - evaluate_models - Evaluating model: RoBERTa Sentiment 2025-06-21 00:30:26 - INFO - evaluate_model - Evaluating model: RoBERTa Sentiment (column: roberta_sentiment_stars)... Evaluating model: RoBERTa Sentiment... --- RoBERTa Sentiment Performance Metrics ---
| Metric | Value | |
|---|---|---|
| 0 | Accuracy (Exact) | 0.5805 |
| 1 | Accuracy (+/-1 Star) | 0.8050 |
| 2 | MAE | 0.7020 |
| 3 | RMSE | 1.2250 |
| 4 | F1 Score (Macro) | 0.2871 |
| 5 | F1 Score (Weighted) | 0.5151 |
| 6 | F1 Score (+/-1 Star) | 0.8919 |
| 7 | Precision (Macro) | 0.2409 |
| 8 | Recall (Macro) | 0.3810 |
| 9 | Cohen's Kappa | 0.2537 |
| 10 | Sample Size | 99,934 |
------------------------------------
2025-06-21 00:30:27 - INFO - save_worst_predictions_to_csv - Worst predictions CSV for RoBERTa Sentiment saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/worst_predictions_analysis/roberta_sentiment_worst_predictions.csv --- Top 50 Worst Predictions for Model: RoBERTa Sentiment (Error >= 1) ---
| index | true_rating | predicted_rating | error | vader_compound | textblob_polarity | custom_score | word_count | transformer_label | transformer_score | text_preview | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 41045 | 5 | 1 | 4 | -0.359 | -0.156 | -0.489 | 22 | negative | 0.808 | All 8 GB appear to be there. I was running into issues starting some programs and with my disk thrashing. No more! |
| 1 | 35983 | 5 | 1 | 4 | 0.941 | 0.216 | 0.309 | 295 | negative | 0.350 | I have been tiring a bit of my iPod, do a lot of driving, and have grown to hate commercial radio stations. Commercials make me sick (guess that's why I watch a lot of HBO). Bought one of these things at Best Buy last weekend after making a commitment to try XM vs. Sirius. Right now, I'm glad that I chose XM (more channels). I love the comedy, news, and rock stations; there's plenty more to choose from.So far as the Roady2, the price is great. You can buy these things (just bought 2 more) on ebay for $20 a piece. Each unit comes with a complete car kit. I also bought the home kit which includes remote. In the car, I route the sound into Aux inputs in my car receiver; at home the FM modulator works just fine. Yes the buttons are a little small, and I agree with the reviewer who suggested the display should have more, but for $20 I can't rationalize (for right now) buying anything more expensive.Installation was a breeze. Mounted antennae on roof/side and routed wires down through weatherstrip. There are plenty of mounting options. Velcroed in the convenient stand. Several reviewers have complained about the wire mess. I love two sided velcro and so have used cable ties to wrap up the cords neatly with some excess stowed under front passenger side mat.The sound from the unit in car or home is great. I live out in the country (Chesterfield County, VA) and have had no problems with reception.I'm a pleased customer, Roady2 and XM-wise. No doubt I could buy a little more convenient and interesting unit, but at three times the price (even with rebates). |
| 2 | 36164 | 5 | 1 | 4 | 0.502 | 0.094 | 0.039 | 303 | negative | 0.768 | I've had it for about a week now. Every time it's *not* connected to my Macbook Air, its fan kicks in and and it's quite noticeably loud. It stays on until I reconnect. I have tried leaving the fan running thinking it needs to cool down or to reinitialize but it stays on for many hours until I reconnect it. Turning the power off is the only way to make the fan noise go away. I tried updating it with the latest firmware but that did not help. I called Apple Care and after waiting 20 minutes on hold, they told me that they can't do anything and that I should return it.Apple's quality assurance has failed me for the first time. All they had to was, power it up, check the fan noise and fail it. Something you'd expect out of a $1k monitor.UPDATE Dec 13 2011The display just died on me this morning. Shipping it back to Amazon for a refund. Just had a quiet death where it's not responding to the thunderbolt connection from my Macbook. Just a blank screen. Since I do love the display despite the unfortunate luck of getting a defective item, I'm going to order another one.UPDATE Dec 21 2011Got a new unit from Amazon. Used for about a day and It does not have the problem I experienced with the previous unit. There's also a new firmware update from Apple which was posted on Dec 12 to resolve the issue I had. Bumping up a star.UPDATE June 26 2013It's been more than 1 1/2 years since I got the replacement display and I haven't had a single issue since then. Nada. Bumping up all the way to 5 stars. |
| 3 | 36125 | 1 | 5 | 4 | 0.962 | 0.034 | 0.391 | 403 | positive | 0.475 | My first "good" TV was the 19" Trinitron still working in our bedroom. I began to wonder about Sony's quality when my 2 year old 27" Trini blew out after behaving badly for a while after the warranty expired. That was several years ago. The 19" er still works great.I purchased this DVD/VCR combo unit to have until we moved to DVR (which we did recently) technology to record stuff. But still used this as the main DVD and for old tapes. But this unit has really got me questioning Sony's former tradition of quality. What happened in Detroit with the decline of our auto industry apparently did not stay in Detroit. It seems all successfull concerns eventually succumb to mediocrity. After my experience with that 27" TV, this DVD/VCR combo and some other Sony stuff I've owned, I really think they have given up on producing world class products.In fairness I will point out that this unit worked okay for the first few months albeit the thing exhibited some quirks like ejecting tapes it did not like (i.e. Sony 160 minute tapes). Also, it would not respond to a DVD eject command sometimes for 15 seconds. I figured this was just poorly written firmware code.But overall it performed as expected. Until yesterday. I got a new CD of Christmas Carols (from Amazon of course) and put it in this Sony. When I tried to eject the CD, it just froze up and kept blinking on and off "open" "open". Perhaps playing Christmas carols on Halloween was just too much for the spirits that hang out in electronic gear. They took it out on poor Sony.After leaving the unit unplugged overnight, I was presented with only the word "auto" in a now dim display. So off with its head using a screwdriver get my cd back. Yes, I literally had to take the thing apart to extract my precious new half-listened to CD.God bless Sony. I pray this was just the result of bored engineers who got to work on a stop gap product while the star engineers are over working on the new BluRay stuff. I say that because I just bought a Sony 50" lcos HDTV two months ago. I hope the "star" engineers were working on it instead of the ones who put out this piece of junk. |
| 4 | 36122 | 1 | 5 | 4 | 0.994 | 0.106 | 0.251 | 743 | positive | 0.446 | I have had the 6GB Duo for about three weeks now. Though I love the concept, the instability of the system is cause for alarm. Below is a detailed review:THE GOOD:(+) Great Concept(+) Online Access(+) Mobile Apps(+) Large Space(+) RAID redundancy (or so I thought - see THE UGLY below)The concept is great - a personal cloud with fast speed, online secure access, mobile viewing through some nice iOS and Android apps, lots of space, the actual drives are WD Green drives (I have had many and none have failed to date) and the security of Raid 1 redundancy over two 3TB drives. Should one of the drives fail, in less than 5 minutes either drive can be easily removed and replaced (using a matching drive - an easily found and inexpensive WD Green 3TB drive).I own a photography studio where we run a four-machine PC network. I'm always searching for the best way to efficiently and safely store our material. We are especially keen on ensuring our data is as safe as possible from corruption or loss. We've used a variety of systems and processes over the years, and were excited to see the release of this product as it seemed the perfect balance of security, accessibility, redundancy and speed. Unfortunately, the product did not meet my expectations, as you can read below.THE BAD:(-) Laggy Speed(-) Buggy Apps(-) Limited Control(-) Drive Runs Very HotWe received the drive and quickly began migrating our data to the new system. Overall, my initial impression was good. It was pretty simple to setup and the conversion to RAID1 was simply a click of a button. In total, we transferred about 1.2 TB of data in chunks over the course of several days. However, once we started using the drive, I was surprised by how slow it was. We work with substantial quantities of large files, so the slowness was a serious issue and resulted in us having to rework our process to avoid the lag. Not ideal.Another issue is that there is no button, or any way to turn off the system or put it into sleep mode in a way that ensures a safe shutdown. As a result, you are instructed in the manual to guess by the front LED indicator that it's not currently writing and can be shut down. Not the most user friendly.THE UGLY:(in my experience really, really ugly)(X) Dangerously Unstable in RAID configuration(X) No Fail-safes(X) Dual Drive Corruption possible(X) Risk of Total Data LossAbout a week ago, we had an issue where our machines (Windows 7) where the drive was offline and could not be accessed. However, after shutting down all the computers and the WD Duo, then rebooting the DUO, waiting 3 minutes, then booting the other machines, we were able to access the Duo without an issue. Then yesterday happened. The same issue occurred and we went through the same process, but this time the drive would not respond. We tried again. Still nothing. To make a long story shorter, we discovered that the front LED indicator was indicating the drive to be stuck in the booting process. Both drives were corrupted. Looking into this issue, it is unfortunately very common among previous WD Live drives and the only viable solution is sending it to a data recovery service, which can cost anywhere from about $500 to $2500 depending on the amount of data and extent of the damage. Very, uber not good...Luckily, if you find yourself in a similar pinch, I have found the following software to be helpful in recovering the data yourself (though you need to be able to put one of the two drives into your desktop computer in order to do anything). The program is called Raise Data Recovery for Ext2/3/4. I have been able to recover most of the content, though anything that I have edited on the WD Dus is either not detected or unreadable. But hey, I was looking forward to redoing two weeks worth of work.The frustrating thing is that this didn't have to happen. WD could have easily put in a partition or even a built-in bit of memory to house a backup boot system, should the drives become corrupted. This would at least allow you to do diagnostic work. Hopefully, the next version will have such a feature. |
| 5 | 36096 | 1 | 5 | 4 | -0.154 | 0.168 | 0.187 | 117 | positive | 0.615 | My son received one of this a couple of weeks ago from his Aunt who visited for the summer. We did not have a lot of time to use it during the visit, but after she left, we had a really good change to give a good run through. As mentioned by others, the table is notorious for system crashes... We also received a collection of e-books along with the tablet, and we found the more you have loaded into the SD card = system crash! So be advised that if you only need it for light reading, it will do, but for a serious reader, you are going to find yourself cutting and pasting a lot! |
| 6 | 36018 | 5 | 1 | 4 | 0.209 | 0.029 | 0.219 | 21 | negative | 0.578 | These lenses ONLY fit the GoPro 3+, not the GoPro 3. Not sure if there is an adapter...wish there was! |
| 7 | 36014 | 5 | 1 | 4 | -0.778 | 0.125 | -0.058 | 25 | negative | 0.562 | Pain in the ass to get the SSD in there. It is exactly the same size. However, once in it is a sleek functional package. |
| 8 | 36005 | 5 | 1 | 4 | 0.898 | 0.433 | 0.856 | 43 | negative | 0.407 | HDMI is digital - either it works 100% perfect, or it doesn't work at all. Nothing in between. I saw an HDMI cord at best buy for over $100 that had financing available, haha. Just get a cheaper one, it works the same. |
| 9 | 35952 | 5 | 1 | 4 | 0.982 | 0.324 | 0.612 | 336 | negative | 0.430 | I was holding out for the LTE version, but with my old tablet broke I needed a new one when the semester started to hold my books (I am lazy like that) and so I bought this one. Unfortunately, when I first got it, Netflix would not work and Hangouts and Youtube would crash the tablet and cause it to reboot. I did not have GPS or Touch issues, but I was considering returning it, but knew I should wait for the update. Well, it came and fixed my reboot issues, now I can continue to use and love Google's lasted creation without hesitation. I highly recommend if you are not overly invested in the Apple echo system and if you are a student who does not like to carry around a load of textbooks. It is also great for games and videos.Pros:*The screen is beautiful, and I can even read it in the sun. On the old 7 I had to zoom to read small text, but it is crisp and clear on the new 1080p screen. I am not a screen snob, so it may not be the best ever made, but it is the best I have ever used.*Picture in picture on the Youtube and video apps. I can even move the video around the screen with BSPlayer.*Wireless N, so I can stream large files over my wireless network*Google Now. Big Brother is watching, and giving you all the advice you need. My best friend hates the idea of Google knowing so much about him, but I love the productivity tools and it helps me experience the world around me by offering location based advice.*Always up to date with the latest Android version*Portable, I use it instead of a phone or laptop, which may not be for everyone, but it is free.*Just the right balance of price and performance.Con:*Nothing with the latest patch, unless you are an Apple loyalist, then everything :P |
| 10 | 35736 | 1 | 5 | 4 | 0.045 | -0.018 | 0.277 | 197 | positive | 0.702 | After several years of reliable service from my old Canon EOS Rebel body, I was ready to move up to a "pro level" body when the 5D Mk II came out. I was one of the first photographers on Maui to buy the Mk II and I was REALLY looking forward to the overall measurably better picture quality promised by Canon and the indie reviews. After a couple of months of testing and comparisons with my old Canon body, I was VERY disappointed with the 5D MkII's output: EVERY PHOTO I TOOK, regardless of mode (AF and MF), turned out to be poorly focused, so much so that I couldn't even compensate for it in Photoshop. MY old Rebel EOS body (less than half the body-only price) produces much CLEARER images. I went back to using the older body and am returning the 5D MkII to the retailer for either a trade-in or heavy service work to correct whatever the problem is with the optics. My advice: If you absolutely MUST have one of these beasts, test drive it by viewing a few full-size images on-screen. You may be sorry otherwise. |
| 11 | 92367 | 1 | 5 | 4 | 0.410 | 0.333 | -0.160 | 41 | positive | 0.719 | everything about this mouse feels cheap. I guess thats why it doesnt cost much huh? I got what I paid for. It does function. It just feels really really cheap when using it and you wonder how it functions so well. |
| 12 | 35912 | 5 | 1 | 4 | 0.972 | 0.190 | 0.830 | 191 | negative | 0.418 | I procrastinated for a long time about spending the money to buy this lens. When I received it I tried it out with the auto focus - that's not the way to go with such shallow depth of field. This lens is intended to be left at f1.2 or you wouldn't buy it. Keep it in manual focus and you will obtain absolutely fantastic results. Of course, if you are shooting moving subjects, auto may work best for you. Everything is great about it - but I would suggest keeping it on a tripod, just because that's what I like to do to keep everything extremely sharp, and with this shallow depth of field you get the most out of it by doing so.From my little use of it so far, it will rapidly become my lens of choice as I like to do product shots with blurred backgrounds. Portraits also. This lens cannot be surpassed for that. Everything is super sharp if the photographer takes the effort to pay attention to detail. The lens is unforgiving - but that is a good thing as it makes us focus! |
| 13 | 35844 | 1 | 5 | 4 | 0.660 | 0.271 | 0.252 | 55 | positive | 0.725 | Got this for a Dell XPS 15, it looked great, the XPS 15 fit on it properly, and I even tried it on my Dell Inspiron 9400 (17inch).Apart from the looks it is just a poor performer, the laptop really did not even seem to get any kind of cooling.Not worth the money |
| 14 | 92389 | 5 | 1 | 4 | 0.755 | 0.141 | 0.755 | 62 | negative | 0.402 | WOW I was a kinda worried about this subwoofer not giving me the bass i wanted i was wrong its over kill it does not have a boomy sound as other have stated its so clear an fully adjustable the price is great i would buy another one if i needed too.with this everything in my house shakes I love it |
| 15 | 92396 | 5 | 1 | 4 | -0.212 | 0.154 | 0.317 | 285 | negative | 0.668 | I'm ordering a second set of tubes because my first set fell in a crack between two rocks with no hope of ever being retrieved. Good thing they were not expensive. The Fotodiox tubes are nothing fancy, but they get the job done. I think some of the negative reviews reflect a lack of understanding of what to expect when using extension tubes. First of all, they don't work well with modern lenses that lack an aperture ring. There is nothing in the tubes to control the aperture, so the aperture will always be held wide open - sure, you'll get more light with the aperture wide open, but the depth of field will be incredibly shallow and what's more, most lenses are softest at maximum aperture. So make sure you use a lens that has an aperture ring.I'd recommend an older manual focus lens such as the Pentax SMC 50mm 1.7, which seems to marry very well with these tubes. Put your camera in Aperture Priority mode, so that you set the aperture with the ring on the lens and the camera picks the appropriate shutter speed. Pick a higher f-stop such as F/14 to increase the depth of field, but not too high because tubes will exaggerate diffraction which occurs at higher apertures. Turn the focus ring all the way to its closest focusing position. Set the camera to shoot continuously at 2 frames per second and then slowly move back and forth with respect to your subject, clicking away all the while. You'll probably delete a bunch of shots later on the computer, but you'll get plenty of keepers with this method. |
| 16 | 35770 | 5 | 1 | 4 | 0.556 | -0.046 | 0.158 | 79 | negative | 0.473 | This remote was very inexpensive and is well built. I have been unable to use it because it is for the Canon Rebel "I" (intellegant) models with an infered receiver built in which my camera does not have. This was simply a matter of me not reading the details in the listing which upon a second look is very clearly stated. I have ordered the same remote in a corded version which will work with my camera. |
| 17 | 35744 | 5 | 1 | 4 | 0.758 | 0.390 | 0.805 | 65 | negative | 0.552 | Ita amazing how much sound these small amps can put out. My friend that helped me install the amp "guaranteed" I wont be happy because he has been messing with car audio for 20 years and "you don't get the sound your looking for out of something like this." Once we got it tuned it blew both of us away. |
| 18 | 36195 | 5 | 1 | 4 | -0.542 | -0.233 | -0.559 | 20 | negative | 0.840 | i have two of these bad boys, and i will likely buy a third for the tv in our basement. |
| 19 | 36209 | 1 | 5 | 4 | 0.696 | 0.184 | 0.228 | 134 | positive | 0.841 | Te zoom is great, the optics are fine for a cam with a zoom of this power. Obviously low light will suffer when zoomed, but we have been able to get some incredible shots with this camer. Unfornatunatley the software for viewing those shots is right out of the 90s. Primitive, buggy SLOW. So incredibly slow tht it takes hours to get from the point of importing the video to the point of viewing/ editing. If this camera shot video in some standard format it would be fine - use Picassa or adobe to view/ edit. But you have to use Panasonics terrible software to do anything with the video, and it is pretty much unusable, like panasonic put the video software coding out to bid and took the coder who works for 1$/Hour. |
| 20 | 36211 | 5 | 1 | 4 | -0.599 | -0.044 | -0.539 | 26 | negative | 0.722 | Was getting 50 - 75 mbps before with lots of interference. ~140 now. No complaints with this product except the connection program is a little old school. |
| 21 | 36220 | 5 | 1 | 4 | 0.278 | -0.068 | 0.220 | 74 | negative | 0.627 | I don't consider myself an audiofile, but I can still tell the difference between good and bad headphones. I don't like when speakers/headphones have strong bass, but make everything sound muddy. These headphones aren't very heavy on the bass, but the bass that it does put out is very clear and solid. I had a pair of Koss UR-20s that sounded terribly muddy after listening to the HD-202s. |
| 22 | 92184 | 5 | 1 | 4 | 0.996 | 0.221 | 0.571 | 622 | negative | 0.610 | Trying to buy a case for my new iPad (iPad 3) was one of the most aggravating things I've done in quite a while. I had a nice faux leather folio-style case for my 1st Generation iPad, and was looking for something similar for my iPad 3. I wanted something that folded over and protected the screen, provided ample protection around the edges against scratches and shock, and had the capability to stand up to facilitate watching videos or typing.That being said, there are a million different case options out there and for everyone there's people saying "it's wonderful" and other saying "it's junk". So how the heck is one to decide without actually seeing it in person?!? I ultimately decided on the CaseCrown because it had the most reviews, yet still was rated very high.Some of the cases hold onto the iPad with corner clips, I didn't trust that at all to hold the device in. Other people commented that with other cases the iPad would slide out when they didn't expect it, resulting in broken screens. I wanted something where the iPad slid into a tight sleeve and was held in place by some sort of closure. This case has exactly that, you open it up and then slide the iPad into the case from the middle, then fold the inside velcro flap over. The iPad fits very snugly in there and does not move. The case edges do not obstruct any of the screen or controls. Because of the tapered edges on the new iPad, hitting the mute/volume buttons as well as the sleep/wake button can be a bit of a challenge, but overall not a big deal. Even though the speaker is partially obstructed, it doesn't affect the sound output too much.The material this case is made of is not the greatest. It's certainly not leather, but it's soft and has a nice texture to it so it doesn't slip. The inside is very nice, made of a soft microfiber material so it won't scratch. The mechanism that allows it to stand up works effectively, although I know that once the flap on the back loosens up, it may not stay in all that time - that same thing happened with my 1st Gen iPad case, again not a big deal.Lastly I'll address the magnetic closure issues. It seems many of the case makers simply took their iPad 2 cases and added "compatible with The new iPad/iPad 3" to the description, as there are many reviews on many different cases saying the auto sleep/wake function doesn't work with this case and the iPad 3. A buddy of mine ordered this same case via Amazon a few days before me and reported that his sleep/wake does NOT work. However, they must've made an adjustment and released an updated version by the time I ordered mine, because the sleep/wake feature DOES work for my iPad 3. When I open the lid, the screen turns on automatically. When I close the lid, the display turns off automatically. If you bought this case and it doesn't work, I'd suggest returning it for the updated model.Overall this case was exactly what I wanted - looks nice, feels nice, fits perfect, and offers decent protection, all at a great price point. I'm very happy with it, and would definitely buy again.Pros: Great snug fit, adequate protection, sleep/wake works with The new iPad/iPad 3, great price.Cons: Cover material is of questionable quality, side controls are difficult to access due to tapered design of iPad. |
| 23 | 36693 | 1 | 5 | 4 | 0.858 | 0.134 | 0.167 | 212 | positive | 0.858 | I'd previously rated this a 5* - now it's getting 1*....It's great at first. Set it up - everything worked well. I was able to assign internal IPs based on mac address, set up port forwarding for various computers on the network. It was good value - and worked nicely.12 months in - it died. No connection. Finally figured out it was the router and popped in an old linksys router that I had - which worked fine.I ummed and arrd - but figured that I'd got a year out of it, and with the good reviews - maybe I'd just gotten a lemon.I ordered another.It arrived this week. Set it up quickly again - everything great.Today this one is dead too. When I say 'dead' - I mean the important thing - routing the connections. All the lights are going, but that's it. Put back in my old linksys router temporarily - all working again, so it's definitely the medialink router that's the issue.This one is going back to amazon for a refund and I'm changing to another brand. Clearly a lot of people get lucky with this - but 0 for 2 ? Just be warned. It's not all rainbows and unicorns with this router unfortunately. |
| 24 | 36640 | 5 | 1 | 4 | 0.000 | 0.500 | 0.600 | 21 | negative | 0.585 | worked as described. they could have made it out of a more durable material, however it's a dust cover. so |
| 25 | 36606 | 5 | 1 | 4 | -0.680 | -0.412 | -0.486 | 57 | negative | 0.756 | Uploads kept crashing my cable modem. The Charter cable tech was claiming that the trouble was my wireless router. Of course this was silly, as I was plugged in via ethernet, and the router can't reset the cable modem anyhow! I got this and the problems went away, downloads were noticeably faster and uploads work again. |
| 26 | 36523 | 5 | 1 | 4 | 0.891 | 0.119 | 0.291 | 120 | negative | 0.521 | This is the charging system that should be in the box from the factory. Works absolutely perfectly. The charging cable that comes with the unit (or the connector in the unit ) is a total piece of crap. At the third charge with the original charging cable I had to wiggle the connector to get it to work. On the fourth charge I had to wedge a pen under the end at the unit to get it to make a connection. I have a cover on my TouchPad and it still charges without taking the cover off. And as a bonus it even shows a clock while charging that it did not do with the original. Definitely a 5 star product. |
| 27 | 36474 | 1 | 5 | 4 | -0.765 | 0.244 | -0.531 | 111 | positive | 0.608 | First let me say that I have used ASUS motherboards since 1995 and loved them.Installing the motherboard software went fine until the USB 3 drivers. Both Malwarebytes and my antivirus blocked the drivers as infected files... twice. I shut down both Malwarebytes and the antivirus and installed the drivers anyway. As soon as I restarted both programs they blocked the USB 3 drivers as infected. Malwarebytes listed it as a specific trojan. I have had to disable the USB 3 on the motherboard and will wait until Microsoft or someone else comes out with drivers. This is the first problem that I have had with any of the ASUS products. |
| 28 | 92240 | 5 | 1 | 4 | -0.388 | -0.014 | -0.136 | 138 | negative | 0.651 | I hate wasting my life researching things on Amazon, and yet I just continue to do so, so here's me trying to save you time. I've had this for over a year, and I've never, ever had any problem with the fans. This is the first time EVER I've been able to say that about a laptop cooling pad. They usually make this terrible noise and I end up taking everything apart and tinkering with it to the point where it's unrecognizable from what it was supposed to be. This one just works really well. The pad itself is too steep, though, so what I did was just add a bit of foam in the from to lessen the grade, and it was perfect. So I guess I did tinker with it... sigh. |
| 29 | 36437 | 5 | 1 | 4 | 0.228 | 0.150 | 0.448 | 40 | negative | 0.605 | if you bought one and hated it you are hella lame. these things are awesome. don't know something about it? check the wiki. you shouldn't be buying one if you don't know how awesome it is anyway. |
| 30 | 92250 | 5 | 1 | 4 | 0.421 | 0.600 | 0.246 | 40 | negative | 0.495 | Dropped 1 camera years ago. Never gonna do that again. I have one of these straps on every camera I own. Also feel safer when teaching someone how to take "pitchers" that they won't oops me into the poorhouse. |
| 31 | 36386 | 5 | 1 | 4 | 0.631 | 0.022 | 0.460 | 252 | negative | 0.639 | Being ignorant of Uninterrupted Power Supplies probably cost me my last computer due to a power surge. I came home one day to find not a "blue screen of death", but a black screen with what looked like a DOS prompt. I asked the wife "what's up with the computer?", she said "power surge knocked it out". (Note, that it WAS hooked up to a surge protector!) So, I thought "GREAT!", and went through re-boot. Multiple attempts later, no avail, hard drive would spin but would not boot, nor be recognized by the computer. So, new computer ordered and installed and in the mean time, asked around and was recommended that I get a UPS. Made sense to me. I read multiple reviews, like I do on everything I buy, and settled on this unit. I only have about a hundred watts of stuff plugged in to it, so I don't need the monster/bigger units. This one appears to be quality made, from the display panel, to the way the plug-ins are manufactured in the back of it. Nothing about it looks cheesy or cheap. It comes with a software disc, and allows several settings to automatically shut down the computer when a damaging surge is detected. I combined this along with a 1.5TB backup drive that runs once every day, and I must say that I feel so much better now knowing (fingers-crossed) that I won't have a repeat of my earlier misfortune. |
| 32 | 36325 | 5 | 1 | 4 | -0.256 | 0.275 | -0.022 | 84 | negative | 0.540 | When I ordered this product I was not sure what I would get. They included all the batteries, which was something that I was not expecting. They were Duracell and they went beyond what I was expecting. I did have the alt button quit with its spring. I was able to fix it, but I had to use my own hardware to do it. I do not blame the sellers for this, as it worked at first. It could just be a manufacturing defect. |
| 33 | 92270 | 5 | 1 | 4 | -0.778 | 0.056 | -0.222 | 59 | negative | 0.773 | I was worried when I originally purchased this item. I had heard all about fake and unresponsive cards. I was actually anticipating having to go out and purchase a name brand card from a major retail store. I was wrong to worry. This has been in my smart phone for a few weeks now and has been working flawlessly. |
| 34 | 36268 | 5 | 1 | 4 | 0.186 | 0.363 | 0.628 | 298 | negative | 0.468 | I'd list off all of the brands of cables I've tried over the years, but you'd get bored and stop reading.So I'll sum up: buy this cable. Stop looking at other brands. Stop wondering if you'll get the best bang for your buck. You won't find a better quality cable than the Planet Waves American Stage cable.The deets:You'll likely spend years and hundreds of dollars finding and tuning the perfect instrument for you. You'll then spend hundreds, maybe thousands of dollars on the perfect amp.And then you'll complain about spending $25 on an instrument cable.I know. I've done that.But if you spend all that money on the perfect axe, and all that money on the perfect amp, shouldn't you invest in some quality cables to connect the two?The connectors on the American Stage cable really do sit better. And the cable itself is tough and study.I've run this cable from a Gibson ES acoustic/electric, from a Pono MSD-e electric ukulele, and from a Kala U-bass, to an Orange Tiny Terror with a Weber Legacy 10", and a classic Tweed Fender Deluxe. No matter what combination I've run, this cable makes lows a bit more pronounced, highs a bit smoother, and mid more articulate. And best of all, they add ZERO noise.And before you stop and think "Oh, he's just saying all this cuz he got the cable for free"... I'd already bought a 10 foot & a 15 foot cable two months before I got the 20 footer.I have no complains and now won't buy anything else. Now, if only they'd make 6" and 12" connector cables like this... |
| 35 | 36247 | 1 | 5 | 4 | 0.891 | 0.197 | 0.657 | 228 | positive | 0.680 | Transcend used to make good memory products, but I think these times are over now. I own two 4GB CF Cards (266x) and one 16GB SDHC Card (Class 6). And they all have never failed. The CF Crad are already quite old, but they still work fine in my Canon EOS 7D. But a few days ago I thought it's about time to get a bigger card. From GB/$ ratio the 32GB was most attractive. Today I tried out the card directly in Hookipa to shoot some windsurfing action. While shooting everything looked just fine. Coming home I notice that my camera would show me for some pictures only thumbnails and the message that the picture can not be shown. I used the revovery software from the Transcend website and could recover some of the files. But most files just have at the bottom a stripe in one color with the high and the color being different any time. After recovering a tried to do the "Complete Format". After a while this failed with the error message "Card is write protected".I am really disappointed. The only thinh which worked great was the registration for the life time warranty, but this doesn't help to get the files back. Luckily it was just a test shoot to see the performance of the card. |
| 36 | 36233 | 5 | 1 | 4 | 0.477 | -0.333 | 0.076 | 37 | negative | 0.923 | I always see kids using these pathetic sleeves to protect their MacBooks and I simply look at them and scoff. If you treat your computer like a human child then you need one of these Swedish gems. |
| 37 | 35742 | 1 | 5 | 4 | 0.718 | 0.150 | 0.396 | 34 | positive | 0.645 | Since this is rechargeable only, if you lose the charger cord or the internal battery dies... you're out of luck. Replaced this with a light that accepts batteries and I'm much happier. |
| 38 | 92423 | 5 | 1 | 4 | 0.782 | 0.093 | 0.270 | 241 | negative | 0.648 | I purchased my 3G 64GB iPad 1 from AT&T website back in April this year and AT&T automatically set my iPad up with a post-paid plan for 3G service. I personally don't like post-paid plan since the pricing is different from pre-paid plan. You can do research on-line to see why some people like the pre-paid and some like the post-paid plan from AT&T. It depends on your personal preference and 3G internet usage per month. The micro sim card that came with my iPad can only be used with a post-paid plan since it has been coded with a phone # in the chip of the sim card. Stupid, right? Yes, it is stupid if you ask me However, the only solution for my problem is to get a brand new AT&T micro sim card that fits my iPad and this is the exact right sim card for it. It works great. I was a little worried due to other reviews, but like other reviewer said, make sure you buy it from a right vendor. I got my micro sim card from abe-123 for 1/3 of the price compared to what AT&T is selling. It is the original AT&T micro sim card. I signed up for the pre-paid plan right at my iPad after I switched the old micro sim card out. Great buy! |
| 39 | 34487 | 5 | 1 | 4 | 0.632 | 0.358 | 0.303 | 20 | negative | 0.531 | I suspect it isn't genuine sony due to the weight & price. I functions great though. never had problems it. |
| 40 | 34761 | 5 | 1 | 4 | 0.582 | 0.115 | -0.127 | 198 | negative | 0.480 | Every pair of earbuds under $100 that I've read reviews for (and that's all I've read because I can't justify $100+ for earbuds ;-) ) have reviews with durability complaints. I've only had these earbuds three months, but I've worn them 3x per week in the gym and several other times when out jogging, and I'm not seeing any signs of damage yet. When it comes to earbuds, I admit to being a shopper who, in the past, has looked for "great bass!" in reviews of cheap earbuds in hopes of getting something for nothing. It doesn't happen. I have four different pairs of $20 earbuds that I just don't wear any more because their sound is tinny. (I suppose I should review those earbuds too, huh?) Anyway, I was an early adopter with these buds - bought them at the local audiophile store and paid double the price I'm seeing here today - and I have no regrets at all. They're a little bulky but they stay in my ears just fine in spite of my profuse perspiration during workouts. The "enhanced bass" is rich but also tight. Highly recommended! |
| 41 | 34830 | 5 | 1 | 4 | 0.317 | -0.044 | -0.414 | 55 | negative | 0.595 | These motion sensors seem to be very well made. I've had poor luck with the big box store sensors that don't last very long. This has a relay output which I needed so it could be used with a dimmer on the load side. Think I will buy another for a different location. |
| 42 | 34818 | 5 | 1 | 4 | -0.429 | 0.325 | 0.436 | 33 | negative | 0.852 | Everybody needs extra batteries for their GoPro. I love the cameras but their battery life is just not that great. Pick up an extra one or two if you are buying a GoPro. |
| 43 | 34810 | 5 | 1 | 4 | 0.801 | 0.129 | 0.565 | 129 | negative | 0.439 | I go through ear buds with microphones like candy. Since I purchase them all from Amazon, I decided to see how much I'd spent over the last two years. I was embarrassed.I decided that instead of purchasing the cheaper 'buds, I'd spend the money on more expensive ones. I did extensive research and opted to go with the Shure SE215 along with the extention for the iPhone. Despite cringing at the final price, I closed my eyes and plunged ahead.The water is fine! These are fantastic earbuds: clear, crisp and very comfortable to wear.The real proof will be if they last more than a few months, but given what I've seen of them so far, I expect that not to be an issue. |
| 44 | 34794 | 5 | 1 | 4 | 0.852 | -0.017 | 0.252 | 169 | negative | 0.651 | When I was installing this in my Intel NUC, I was a little afraid that I might damage the chip based on the amount of force required to install it. The sockets are extremely densely packed, and you have to basically force the socket open using the chip itself to get it to seat right. And it's hard to even touch the chip without grabbing it in an area where it has components soldered on it. I was very concerned that I would botch it, to put it mildly.But this chip is a fighter, and it took the hard knocks with ease. Booted right up and works fine. No signs of memory defectiveness after several hours of use. I wouldn't advise drenching it in orange juice or sitting on it, but if you're a little ham-handed like me, don't worry yourself -- this chip will endure. Just be careful not to snap it in half while you're seating it in the memory slot :) |
| 45 | 34779 | 5 | 1 | 4 | 0.755 | 0.396 | 0.306 | 111 | negative | 0.761 | I am looking for the smart guys that take out their Bose and leave them. These are $5, with prime shipping! How can you beat that? Headphones, you brake-em, lose em, forget em you ruin them running with em. Plus great phones don't give you a cool storage case. What's with that? You spend a bunch on high $ phones and have to wad this up like tissue paper in your pocket. They are work $5 just for the case!!!!! What are you waiting for Bozo, these to go up to $10 when they realize their worth $15 for cheap spares and a free case for your high $ phones. |
| 46 | 92594 | 5 | 1 | 4 | -0.318 | 0.073 | 0.419 | 38 | negative | 0.565 | Since ending up with a dodgy couple of Hoya UV filters with ghastly green ghosting, I have only bought B+W, no fuss top quality. A new lens purchase recently meant that B+W was the obvious choice |
| 47 | 34763 | 1 | 5 | 4 | 0.904 | 0.085 | 0.638 | 341 | positive | 0.531 | We purchased our FIRST Coby DVD player a little over a year ago. We made our decision mainly because we also had a Netflix account and often times received very scratched DVDs - which our old Sony DVD player refused to work with. The reviews here said that this DVD player would play semi scratched DVDs and multi-region DVDs and sure enough we were delighted when the Coby did. Huzzah!About a month or two after our initial purchase our Coby DVD player started acting...funny. Oftentimes it would refuse to turn on and even worse refuse to eject our disks. Then all of a sudden it would act normal again - for a while we read through the manual thinking perhaps it was something we were doing wrong. Finally after one particular battle in which we tried unsuccessfully to turn on the Coby and eject our Netflix disk we decided our DVD player was insane.I called Coby who tried to walk me through trouble shooting which did not work. Finally they offered to replace our DVD player free of charge...sounds great until they mentioned we would have to pay $25.00 for shipping and handling. We refused, after all we could buy a new one for that price - but why should we? Our DVD player had barely lasted two months! Anyhow, we then decided to call Amazon.com who sent us a replacement Coby DVD player free of charge - Thanks Amazon!We were ecstatic to get our new Coby and thought this time things would be different, after all the last one was probably a lemon. Things went smoothly until around two months later when the new Coby started to wig our like the old one. It was like the Coby factory employed the same technology as Inspector Gadgets boss...setting the DVD players to self destruct in T-minus two months! So, needless to say we tossed the DVD player and will never buy another cheapo DVD player again. You seriously get what you pay for with Coby! |
| 48 | 92602 | 5 | 1 | 4 | 0.960 | 0.460 | 0.336 | 78 | negative | 0.683 | I wish people would not give low stars because of shipping issues. These reviews are for the quality of the products. I have used cheaper slim DVD cases, which I purchased from Amazon. Those cases just looked cheap, the discs often came loose and would shake around inside the case, and the clear film where the DVD insert goes was not cut well.These Verbatim cases hold DVDs & bluray discs perfectly. They just look great and work great! |
| 49 | 35602 | 5 | 1 | 4 | 0.580 | 0.120 | 0.190 | 124 | negative | 0.482 | Have you ever HATED the snags of wires (behind TV, near your computer, just loose wires around the house)?YEP! I hate them. I freaked out when I ran out of these handy things and had to get some more.They're great for organizing the mess behind your TV and to keep wires from tangling up near your computer.It's also great for bundling loose wires/cords that come with all your electronic devices.These are relatively short so if you have thick wires (like the power cord to your TV or surge protectors - it's best to use 2 together). These are great to have handy around the home and way better than zipties since you can reuse all the time. |
--- End of Worst Predictions Table for RoBERTa Sentiment --- 2025-06-21 00:30:27 - INFO - evaluate_model - Skipping custom confidence score analysis for Transformer model: RoBERTa Sentiment 2025-06-21 00:30:27 - INFO - evaluate_model - Evaluation for RoBERTa Sentiment complete. Evaluation for RoBERTa Sentiment complete. 2025-06-21 00:30:27 - INFO - evaluate_models - Evaluating model: Ensemble 2025-06-21 00:30:27 - INFO - evaluate_model - Evaluating model: Ensemble (column: ensemble_stars)... Evaluating model: Ensemble... --- Ensemble Performance Metrics ---
| Metric | Value | |
|---|---|---|
| 0 | Accuracy (Exact) | 0.4893 |
| 1 | Accuracy (+/-1 Star) | 0.8291 |
| 2 | MAE | 0.7437 |
| 3 | RMSE | 1.1615 |
| 4 | F1 Score (Macro) | 0.3250 |
| 5 | F1 Score (Weighted) | 0.5083 |
| 6 | F1 Score (+/-1 Star) | 0.9065 |
| 7 | Precision (Macro) | 0.3542 |
| 8 | Recall (Macro) | 0.3254 |
| 9 | Cohen's Kappa | 0.1796 |
| 10 | Sample Size | 99,934 |
------------------------------------
2025-06-21 00:30:27 - INFO - save_worst_predictions_to_csv - Worst predictions CSV for Ensemble saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/worst_predictions_analysis/ensemble_worst_predictions.csv --- Top 50 Worst Predictions for Model: Ensemble (Error >= 1) ---
| index | true_rating | predicted_rating | error | vader_compound | textblob_polarity | custom_score | word_count | text_preview | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 69812 | 1 | 5 | 4 | 0.951 | 0.108 | 0.807 | 91 | First thing is trying to get all the little "bubbles" from between this and the screen, GOOD LUCK. Second thing is trying not toScratch the screen saver while trying to accomplish #1. GOOD LUCK. Third thing is trying to get the #2 tab after if you managed to get past #1 & 2. What "Nitwit" would use such a strong glue on the tab is beyond me, the label peeled and leftglue on the saver. After the second wasted saver I just gave up, not worth the aggravation |
| 1 | 65893 | 1 | 5 | 4 | -0.929 | -0.033 | -0.490 | 434 | Chromecast is such a great idea......except when it falls in the hands of a control freak that controls everything but their design and quality. Google is basically using us as guinea pigs for product research and market research while having us finance that research.I was debating if it should be a 1 or 2 star review. I think I would have preferred 1.5 stars, since it's not totally useless.1. Netflix and youtube work: Surprise, something actually works. It doesn't work all that well. Half of the time, my android netflix doesn't even have cast enabled. It actually works better on the iphone. Youtube is in the same boat, but in slightly worse shape. It's difficult to use in android and in ios. And again, on the adroid, it doesn't get "Cast" half of the time.2. Setup.....the worst designed setup procedure of anything I have ever purchased. I swear that even my made in china treadmill with god knows what manual was easier to set up. If you have more than 1 wireless router in your house, you may be screwed. If you are able to, turn them all off except for one. Hopefully you can get it within the range of the chromecast dongle and whatever the device you use to set it up......and no, setup only works from chrome.3. Streaming from chrome......it also works but at lower resolution and it freezes and crashes all the time. Think first gen android.4. Stonewalling developers...that's why when someone comes up with an app to support local content streaming that just about everyone wants, Google goes and breaks it. The worst of all, they flat out lie about it. Google, how dumb do you think we are? We know you want the control, just admit it.5. I don't know how long it's going to last, but it runs very hot. I don't think it knows when and how to turn itself off. Even if your TV is off, this thing is still cranking out heat. I probably is too small to affect your electricity bill, but it can't last too long with the kind of careless design that constantly running at a high temperature even when it's not supposedly in use.All in all, it's a poor man's roku box that just doesn't work too well. If you got it for 11 bucks, you might as well keep it. If you paid $35, I feel for you. We got ripped off. |
| 2 | 11687 | 1 | 5 | 4 | 0.951 | 0.178 | 0.721 | 286 | I have two LG Blu-ray players. One was an earlier model, given to me as a birthday gift by my son. I am very happy about it. Then based on that experience, I bought this model, simply because it offered more features. This one sucks. Here is why:1. While I can find and play certain movies on youtube with the old one, this one can not find those.2. Every time I want to connect to Netflix ot Hulu, security information has to be updated. Can not remember the password for wireless link.3. If I quit in the middle of a BD movie, the next time I turn it on it asks me if I want to resume viewing the movie. So far so good. But it cannot resume properly. It shows video without the sound. I have to unplug the power cord from the wall and reboot it every time.4. The old LG player rarely gets software updates. This one, however, gets updates on a weekly basis (almost) and yet they cannot get it together. After the updates nothing is better. The most recent one changed the display. The letters and numbers are so small now that I can barely read them. They also brought this smart search feature. It is supposed to guess the word you are typing so it rearranges the letters being displayed trying to predict it. It rarely predicts correctly. If it is a foreign language search you are in deep trouble.5. Then it occasionally freezes. You have to unplug the chord, wait a few seconds and reboot it.If you want a good LG BD player this one is not it. Stay away from it. |
| 3 | 42685 | 1 | 5 | 4 | 0.889 | 0.184 | 0.803 | 158 | This thing has been great. Music sound quality is good as is call quality. The design is good so I don't have to have a device in my ear at all times. I get a call and grab one of the ear buds and push the button to answer. However, the leads that the ear buds are attached to are not very durable at all. After only a few months, the insulation from the leads is coming off from around where they go into the device. This is not good and I only give my device a few more weeks to live unless I can either get LG to warranty it or figure out some way to repair it myself.EDIT: The left side ear bud has stopped working. These are now garbage. This would be a great product of the wires to the ear buds were more durable. Disappointed and would not recommend you buy these. |
| 4 | 58217 | 5 | 1 | 4 | -0.735 | -0.007 | -0.722 | 32 | I bought this refurbished product because it was very cheap but I was afraid it wasn't going to work as expected. But I have no complains. Works as a normal product. |
| 5 | 42677 | 1 | 5 | 4 | 0.840 | 0.271 | 0.656 | 66 | At 92 feet (less than 30 meters) underwater, water got in and it died.I have no idea if Sony would replace it. Even if they did, I still wouldn't have the videos from one of the best dives of my life from half way across the world.It worked perfectly fine for everything else. If you plan to dive with it, just don't. |
| 6 | 58249 | 5 | 1 | 4 | -0.912 | -0.094 | -0.292 | 83 | This is a UHF antenna, and I was afraid that it wouldn't do well with my local VHF channels. I was wrong to worry. I put it in the attic and it is getting all my local channels, even a few I didn't know existed. Money well spent. My worry was for nothing. I do live within 15 miles of all the local transmitters though... if you live further away or have low power VHF local channels, your experience may vary. |
| 7 | 33954 | 1 | 5 | 4 | 0.950 | 0.116 | 0.808 | 147 | A microfiber lens cloth is a microfiber lens cloth, right?WRONG!I bought these, as well as a pack of the more expensive MagicFiber cloths. Turns out these ones leave tons of streaks and smudges and scuffs on everything. They have the softness and consistency of waxed construction paper. Might as well give up and wipe your glasses on your shirt, because these are worthless. I ended up throwing them all away because trying to clean anything with them was just an exercise in futility. Don't bother.Get the more expensive ones. At the risk of sounding like a shill, the magicfiber ones on amazon are far better, and worth the extra cost. Or buy local. I've had good luck buying random local brands, because you can always tell from looking and touching if they're soft and any good. Just don't buy these. |
| 8 | 42661 | 1 | 5 | 4 | 0.807 | 0.073 | 0.757 | 55 | Got this for my daughter and was not pleased. It is super tiny, crazy small, can't imagine how anyone can comfortably use this machine. Also, it kept losing internet connectivity. Amazon took it back super easily, as always. We replaced this with a DELL and it has been running smoothly for several years now. |
| 9 | 95284 | 1 | 5 | 4 | 0.959 | 0.098 | 0.765 | 420 | When I purchased this TV I didn't really know what I would be getting. The 1080p was a great selling point for me but I took a risk with its low contrast ratio. Turns out, this TV is just garbage. The 1080p isn't really 1080p. They say that you may lose image quality if your TV can't support 1080p but you are using it anyway. I used this TV to it's full potential with blu-ray and HD gaming with my Xbox 360. Very disgusted at the picture quality this TV produced for 1080p. The picture became very pixelated and made my brand new video games look like games from 10 years ago.My other 720p television looks way better than this, and that is not full HD as this TV claims itself to be. If you want true HD experience from 1080p, you better be ready to buy something with 100,000:1 contrast ratio and at-least 120hz. If you buy anything lower than this, your 1080p will mean nothing and will look worse than 720p.For simply watching TV and not taking this television to its maximum potential, you wont notice any difference at all. HD cable looks like it should, although I am very sure the cable looks more clear on my other 720p tv because it has a higher contrast ratio than this. Also, this TV has a aspect ratio of 16:10. This is unheard of. This is partly the reason of a worse screen. There are options to change it to "wide" or a few other things, BUT it puts black bars on your TV to make up for it. If you want to lose size then why not just buy a smaller TV that can actually handle a 16:9 ratio. To add on to settings, this TV has VERY MINIMAL customization of picture and audio. You can choose their preset settings, but those are either too bright or too dim, and you cannot edit those. This forces you to create your own picture setup, and there isn't much you can change to make it better.So to bottom line this: if you are going to take the TV to the max, this TV is NOT for you. If you are going to use the TV casually, this TV is NOT for you either. You are better off buying a 720p with higher contrast ratio for the SAME PRICE and I guarantee you will get better picture |
| 10 | 42654 | 5 | 1 | 4 | 0.768 | 0.128 | 0.456 | 126 | I installed this product on a 2004 Pontiac Grand am. The installation was easy, I did not need the directions and just compared the factory radio mounting points when deciding how to mount the new radio.I was considering knocking off one star because there is a very small gap on the right side, probably 1 mm, and nobody but me will probably notice it. I tried unscrewing the radio and sliding it to the right as much as possible and still a slight gap. It is not that big of a deal but something you might want to consider.All things considered I would still recommend this product. You can not beat the price. Probably can't install an after market radio with out it. |
| 11 | 85156 | 1 | 5 | 4 | 0.941 | 0.293 | 0.691 | 163 | I was smirking at negetive reviews and calling those who left them whining babies..... until now.This Hitachi SIMPLYNOTTOUGH drive crashed on me for absolutely no reason. I lost so many important files which this [...] was suppose to keep safe. It worked fine until it did for about 4 months. I did not misuse it in any way. have NO CLUE whatsoever why it crashed. It worked fine until last night. I was so impressed with the 'built in cable' design however it has a major flaw in connection. This Intigral USB Cable design is very impressive however it does need lot of improvement. The connection is surprisingly too delicate and you sometimes need to 'wiggle' the cable to powerup the drive.By the way - Don't even bother calling customer support unless you are prepared to sit rooted to the spot for.... let's see... 4 days for someone to answer your call and to tell you how deeply sorry they are... [...].[...] |
| 12 | 85131 | 5 | 1 | 4 | -0.813 | -0.050 | -0.254 | 27 | i purchased this card a few years back and it just went out last year in november 2012 , but been threw hell water and snow and back |
| 13 | 65884 | 1 | 5 | 4 | 0.867 | 0.275 | 0.665 | 20 | Packaging specifically said iPad, but a "Transformer" sticker was on it. Amazon refunded, great customer service by Amazon as usual. |
| 14 | 23192 | 5 | 1 | 4 | -0.768 | -0.045 | -0.373 | 112 | This replaced the shameful, pile of junk charger that came with our Garmin. We know a lot of people whose charger plugs broke within 2 years. Garmin, you suck for including junk with your product. Your Garmin GPSes also drive me crazy because they really kinda suck too because they are slow and clumsy. What doesn't suck is this replacement charger. It doesn't have the traffic antenna but with a smartphone, no one needs that gimmick any more. This plug seems to be built with quality. The previous one was not. I just feel it should be A LOT cheaper in price to reflect the true cost of this thing. |
| 15 | 74830 | 1 | 5 | 4 | 0.437 | 0.071 | -0.205 | 109 | I ordered this unit because it claimed to work for PC to MAC transfer....almost non existent instructions pictured cable being installed in one configuration...no "split screen"...called customer support and spoke w/ "Lou" for about 30 minutes(BTY I think I'll name myself Mahatma next time I call these guys!)...Lou told me to switch the cable...after numerous restarts (and a "switch back") ol'Lou told me it was defective and suggested I return it to "wherever I had gotten it from"...5 stars to Amazon for issuing a refund...oh, yes...I bought the Targus cable for $10 less and it works just fine! |
| 16 | 58413 | 1 | 5 | 4 | -0.766 | -0.073 | -0.394 | 149 | UPDATE July 31, 2012:My initial review last year was five stars - the router installed easily and connected with all my devices. Then yesterday, after about ten months, it just quit - dead. Tried all the usual things with no luck. I looked on the Cisco website for help and from what I read, it sounded like I would have to PAY them for warranty support! What?! I came here to Amazon and read the horror stories from other people who had the misfortune to buy this router, and who wasted their time trying to jump through the Cisco hoops. The "one-year limited warranty" has the emphasis on the "limited" part. You do indeed have to pay them to even talk to you, and you can't send the router back unless you do this.Well, Cisco-Linksys, we are finished. There will be no more Cisco products here. |
| 17 | 58425 | 1 | 5 | 4 | 0.700 | 0.525 | 0.665 | 83 | sounds great, but you have to jump through a bunch of hoops to get the surround sound working in windows 8 because there are STILL no drivers for win 8. There site says that "they are working on it" which is clearly a lie, because the developer beta for windows 8 was released in September, 2011. So they have had over 2 freaking years to get a driver written, Buy something else if you have or may ever have windows 8. |
| 18 | 58427 | 1 | 5 | 4 | 0.735 | 0.325 | 0.636 | 21 | Selling something you get free that won't do you a bit of good anywhere outside of the real 3D theater. |
| 19 | 34031 | 5 | 1 | 4 | -0.836 | -0.187 | -0.488 | 25 | I can now get back to shooting aliens and killing the bad guys. What else can you say. It works. Battery last a long time. |
| 20 | 74940 | 5 | 1 | 4 | -0.748 | 0.375 | -0.499 | 42 | I was having power issues with my Garmin and wasn't sure if the problem was with the cable or the cradle holder. I tried the cable first and when that didn't fix my problem I purchased the cradle (problem resolved). |
| 21 | 96722 | 5 | 1 | 4 | -0.542 | -0.600 | -0.633 | 44 | Don't fall for fancy or expensive cables. If you are transferring HDMI signal, it either works or it doesn't. The cable won't impact the signal "strength" in any way. You either get a picture or the cable is bad. |
| 22 | 74957 | 1 | 5 | 4 | 0.649 | 0.200 | 0.735 | 73 | This is not an understatement, I can't find one thing better about this camera when you compare it to the Canon g11 - g12 - do the research for yourself and you'll see... Canon g12 is the way to go... Don't just look at the numbers - check the features as far as the LCD viewer superiority of the g12 vs this one - actually speeds in real time etc... Lense quality, image quality ... |
| 23 | 42506 | 1 | 5 | 4 | 0.998 | 0.254 | 0.576 | 534 | First off I've used a lot of different headphones both personally and professionally. There are lots of options out there that aren't Bose, but in my opinion, Bose is pretty good for the consumer-level individual looking for some great sound quality, especially if you want noise-canceling. If you're on the fence between Bose and Beats, you should definitely get the Bose. Beats are just a fad among high school kids and Jersey Shore types.I bought these after having owned Bose QC15s for several years and having used them in many different environments including long flights and on sea-going vessels for months at a time (In other words, in environments with a lot of ambient noise). QC15s are great, the noise canceling feature is fantastic and sound quality is great, volume is more than sufficient, and they are very comfortable to wear. Wanting to get with the times and shed my wires for Bluetooth, I got these headphones.Long story short, when I received them and tried them out, I was highly disappointed. The sound quality and product construction were not on par with what I expected for a $250 pair of headphones. The quality of sound was not as good as my QC15s. And, they come with a cheap cloth bag, not the nice hard case I'd received with previous Bose products.I tried the AE2Ws paired with both my computer and Ipod for both listening to music and watching movies/tv/etc. I was just not that impressed. For the amount of money these things require, they don't deliver the premium experience you'd expect, not the sound quality, fit, or volume. The sound is certainly deeper and better than a pair of store-brand headphones, but much worse than other Bose products I've used.The Bluetooth portion of the phones worked well, paired quickly, and worked well with the two or three devices that I paired then with.So, I returned them to amazon because they weren't worth the money. I wasn't about to settle for such an inferior product when I had just dropped $250 on them. I solved my problem of wires by buying a $25 Bluetooth receiver off Amazon, and now I have a set of Bluetooth headphones that have great quality and are noise canceling, just by adapting my trusty QC15s.*****It's All About ValueFor most of us, $250 is a whole lot of money to spend on a pair of headphones. So, dollar-for-dollar, my opinion is that the QC15s are better if you want to stay in the Bose line. The sound quality is better, the fit and feel is better, the overall build quality feels sturdier. If you really, really want Bluetooth, you can get an adapter. Otherwise, maybe look at a different manufacturer. This is, after all, just my opinion, and my opinion is that these headphones are WAY overpriced for what they deliver and you could do just about as well for around $30 at any big box store, so save your money. So that's my opinion based on my experience with these and other high-end headphones. |
| 24 | 58621 | 1 | 5 | 4 | 0.972 | 0.373 | 0.866 | 129 | ITS VERY EASY TO USE BUT THATS IT THERE IS NO MENU FOR PLAYLISTS, ARTISTS, ALBUMS, GENRES.SO YOU HAVE TO LISTEN TO YOUR SONGS IN ORDER OR KEEPING PUSHING THE FORWARD BUTTON UNTILL YOU GET TO THE SONG YOU WANT TO HERE. IF YOU JUST WANT TO PUT IT IN SHUFFLE MODE THEN I GUESS THATS OK. I USE.EAR PHONES, NOT THE ONES THAT IT CAME WITH BUT A QUALITY SET AND THE VOLUME WAS STILL VERY LOW. I WENT ON EBAY AND GOT A GREAT MP3 PLAYER 16GB AND ALL THE BELLS AND WHISTLES FOR $24.99. IT EVEN HAS FM RADIO AND A VOICE RECORDER. YES IT CAME FROM CHINA, BUT WHAT DOESNT. I JUST CUT OUT THE MIDDLE MAN AND SAVED A LOT OF $$$ |
| 25 | 74961 | 5 | 1 | 4 | -0.952 | 0.060 | -0.007 | 252 | I got tired of sticking my Zune HD in my pocket with other random items. Also, a big hiccup was the audio cable bending and becoming loose because of pressure applied when I move around with it all connected in my pocket.This case solves both problems, and works great! The buttons and data ports are easily available within the case, and I've not had trouble with the Zune falling out under normal, or above-average use. However, if I'm somersaulting around, the case has a chance of flying off of my belt because it doesn't have a secure loop, just a clip. Even when this happens, the Zune is still securely in the case.(Yes, I somersault around sometimes. Particularly when I'm at the park playing frisbee.)The quality of the case is nothing to get overly excited about, as I've had a few stitches coming loose form day one, but even after my heavy use and abuse it's still solid and I have no worries of anything falling apart.It also features a pocket on the inside which is suited quite well to holding a credit card, key, or a slip of paper. I have no worries that putting slim items into this pocket will damage the screen in any way. The material bordering the screen of the Zune is thick enough that the pocket --located on the inside flap-- does not touch or rub the screen at all-- just don't overfill it! |
| 26 | 33930 | 5 | 1 | 4 | -0.765 | -0.250 | -0.629 | 23 | I am using this card in my small camera and I have no fear of running out of space. No issues at all. |
| 27 | 11664 | 5 | 1 | 4 | -0.857 | 0.201 | -0.184 | 97 | Canon photos tend to push the color saturation a little but most people enjoy the depth of the color. Though the focusing has some issues but not enough to complain about. It's not all that great with low lighting and the Auto Focus does a lousy job of it. If there is one thing that I would discourage this product is it's hit and miss focusing ability in low light. If you want a really great camera than you would need to save up for a pro DSLR camera. I will the next time around... |
| 28 | 11645 | 5 | 1 | 4 | -0.700 | -0.167 | -0.243 | 18 | i use to laugh at these but if you do much modding these are nessary evil to have |
| 29 | 22830 | 5 | 1 | 4 | 0.974 | 0.261 | 0.207 | 149 | This is not cheap stuff. It seems to draw the full 2A current that your Note 3 needs to charge rapidly. I wish it came in black or white but other than that this is a great cable. Just as good as the cable that my Note 3 came with. Well worth the price.I bought one to try it and now I am buying 2 more. 1 for the office and one for the car. May even buy more so that I can charge my Note 3 anywhere I need to.BTW, I did not have a problem with the cable interfering with the protector case for the phone. I have 2 Spigen cases and both work fine with this cable. So I really have nothing to complain about except for the color of the cable! and I can't take away one star for just the color! |
| 30 | 57782 | 1 | 5 | 4 | 0.977 | 0.493 | 0.649 | 67 | These glasses (or box) have no VRG logo, but a very strong chemical smell that wont wash away...so far. I guess they may work OK, if you don't mind the smell. I took a chance on these (after reading the reviews) The seller (VRGamerz) did refund my purchase price + shipping, so I'm happy about that. Buy better quality or you will wish you did. |
| 31 | 66067 | 5 | 1 | 4 | -0.798 | -0.072 | -0.754 | 73 | If you are unhappy with Windows 8, this is what you need to return to Windows 7; It's almost a waste of time to try to install on your Windows 8 Computer, so get a new Hard Drive along with this. Be aware that if you own a Toshiba with Windows 8, you may have a tough time trying to install a new Hard Drive as Toshiba's BIOS is virtually inaccessible. |
| 32 | 66021 | 1 | 5 | 4 | 0.995 | 0.135 | 0.702 | 569 | I really wanted this tablet to work out. Solid plastic build makes for a very thin and light tablet. Nice painted finish on the back doesn't attract fingerprints. The screen is bright and very responsive. To me it feels very nice in the hand and has very little flex. Speakers are just ok.I've had two of these and they both had major issues.1st W510 - flakey touchpad, random lockups2nd W510 - flakey touchpad, random sound loss, hard to dock to keyboardI would really like to have kept it but not if I can't get any official support other than "send us your brand new tablet and dock for repair". I think they have a winning product here but they need to step it up with quality control, software updates and customer support.*Update 12/30/12I've been busy since returning the W510. I've purchased a Lenovo Yoga, an HP Envy X2, and a Lenovo ThinkPad Tablet 2.Lenovo Yoga - Fast, Sleek, and expensive. I had to try something a little stronger and faster...and it was both. Not a fair comparison to the Atom convertibles but a great machine none the less. Mine boots up in about 7 seconds. If you need an Ultra Book first and an occasional tablet second this is probably perfect for you. It was too big for me for around the house use, plus the fan runs constantly blowing warm air. I love that you can add memory and swap or add a second SSD.HP Envy X2 - I had a tough time choosing between this and the ThinkPad Tablet 2 so I ordered both. Compared to the W510 the X2 comes out on top in every way except for price. It is made of brushed aluminum and looks amazing. The build quality it superb, it feels like an Apple product. It does everything the W510 does except bend over backwards for display mode. I was surprised how light the X2 tablet is considering it is made of metal. Unlike the W510 the track pad supports gestures and the dock has a full sized SD card slot in addition to the micro SD slot on the tablet itself. The keyboard looks and feels better to type on than the W510. I wish the keyboard had a backlight. To be fair, none of these machines have a backlit keyboard. The charger that came with the Envy X2 works but the amber charging LED is faulty. It flashes randomly and sometimes stays lit like it is supposed to. When the tablet is fully charged the led turns and stays bright white. I think I just got a bad LED in my charger as it works just fine otherwise. So far, I'm leaning towards keeping the Envy X2 but the ThinkPad Tablet 2 should be here soon so stay tuned.ThinkPad Tablet 2 - Ordered directly from Lenovo but it hasn't arrived yet. I will update as soon as I have it.*Update 1/03/13I canceled my order for the ThinkPad Tablet 2. Lenovo kept bumping my shipping date further back and I got tired of waiting. There are some first impressions up in Lenovo's ThinkPad forums and also over at Tablet PC Review's forums as well. Not sure if I will order it now based on what I've read. Will update if I purchase another machine. |
| 33 | 33715 | 1 | 5 | 4 | 0.878 | 0.042 | 0.359 | 347 | Please see the addendum to my original reviewOriginal review:The appeal of the iPod nano 6th generation for me continues to be its small size but good storage capacity, making it an essential accessory when I do long runs (averaging over 12 miles). But this particular iPod is reputed to be very delicate and susceptible to moisture damage. The H20 was the only armband I was able to find that allowed me to use the nano on rainy days without worrying that I'd destroy the iPod. I use it in conjunction with the H2O Audio TR1-BK H2O Audio Trax waterproof earbuds and, after many runs in downpours or while sweating profusely, have never seen any moisture inside the case. The one downside is that the unit is bulkier than most armbands, something which will make the tiny nano seem and feel much bigger. Some of the fabric fibers on the main portion of the case are fraying and the fabric ring that cinches on the velcro enclosure came unstitched but proved unnecessary anyway. Despite these issues, the armband continues to perform well. I use it without question in poor weather or when I know I'll sweat. For cooler, dryer weather where protection from the elements is less critical, I find the Griffin GB02700 Dash to be a good alternative.Addendum:Well, after about a year and a half of use, during which I found myself limiting it only to those days when it might rain (preferring the much less bulk Griffin GB02700 Dash on dry days), H2O Audio Amphibx has fallen apart. In effect, the clear plastic screen has come unglued from the hard black plastic back casing. To say that this renders the case less than waterproof is something of an understatement. It renders it pointless. For the price, it should have lasted longer than a year and a half of occasional use. Consequently, for 6th generation iPod nano users looking for a waterproof case that will actually hold up over time, I can't in good conscience let my original review stand. |
| 34 | 85543 | 5 | 1 | 4 | -0.949 | -0.053 | -0.645 | 76 | When looking for something to jump start my car I didn't want one of those bulky units, but didn't really believe this would do the job. This morning, my battery was flat. Dash lights still came on but the starter would not turn over. This little battery did the trick and the car started with no problems. I'm still not convinced it would handle a *completely* dead battery, but this works for me. |
| 35 | 85542 | 5 | 1 | 4 | -0.863 | 0.055 | -0.598 | 131 | But I recomend this product I use it when I travel and stay in hotel rooms. It is a theft deterrent but you cant get it out without breaking your body or some cable cutters...which still requires you to break the case in the end.....or a locksmith but I doubt they'd unlock it with proof that it is yours.Locks feel flimsy when they are locked in place but that is to be expected based on the universal design and cross manufacturer compatibility.At the price I have had no problems with it other than accidently putting it into my usb 2.0 slot and breaking the plastic piece off, nothing some glue couldnt fix plus it was a 2.0......I have 3 more 3.0's |
| 36 | 33728 | 1 | 5 | 4 | 0.929 | 0.054 | 0.556 | 150 | First of all, Amazon's customer service is OUTSTANDING .. and so are their help desk people. I received my Kindle as a gift for Christmas. I ordered the Kindle leather cover .. which is beautiful. However, when I started using the cover, my Kindle battery drained constantly, and the unit had to be reset (rebooted) at least once a day. I could never wake it up. After 3 calls to the Kindle service people, we determined that it is this book cover causing the problem. I was very skeptical, but they were right!Amazon stood behind their products. They issued me full credit for the leather cover and shipping, and gave me a $25 dollar credit. They suggested I buy the lighted cover, which I did ... I look forward to receiving it in a few days.Kudos to Amazon and their people. I can't wait to get my new cover. |
| 37 | 23089 | 1 | 5 | 4 | 0.980 | 0.162 | 0.545 | 478 | Howdy all,Just wanted to add 2 cents to this list of reviews for tf700...Kind of forced to jump ship after heat problems and crashing surfaced with another tab I bought early in July.Must say the difference between this tablet and the other brand tab I just returned is night and day.Spectacular performance and well thought out simplicity make this device top notch!General likes;Very quick (especially when forced into high performance mode)Wifi performance is super (no loss of signal 75 feet from router)No door over the micro SD slotSingle speaker sounds good to meDirect wifi works great8 mp camera records very nice images in 4:3The CPU runs at 120 degrees consistentlyFits in the folio cover I bought for my returned tabletJust one dislike;The proprietary connector Asus insists on using for the keyboard dock.Wish there was a micro USB host port on the side.Great job Asus!....update 09/21/2012....After 2 months I still have to rate this tablet high.I've learned a lot about Android and the Infinity.There are so many resources on-line which can help those of us not in the know.I find the TF700T totally enjoyable and have no manufacturing orperformance bugs.Been my experience if you go looking for the bad you'll find something.5 stars!... glad I bought this device...I feel I did not go wrong here.....update 10/22/2012Just installed Scotts CleanROM 2.3 on my Infinity.This is like buying a new tablet!With this ROM the TF700T screams.I would highly recommend installing CleanROM.Now I have the tablet I really wanted.......update 12/02/2012For those who don't mind tweaking a bit I recommend flashingCleanROM Inheritance 2.7.It's available on the XDA website in the TF700T section.Flashing this newest version has made this tablet absolutelyamazing!...update 02/17/2013Running CROMi 3.3 on this tab for a week now.Surfing is supreme with the Android stock web browser!The multi-launcher feature with CROMi is just sweet.My infinity has climbed to new heights after such a dismalstart with stock Jelly Bean.update 09/10/2013Well after 13 months looks like the TF700T finally died.Haven't been able to get it to boot for 5 days now.I'm probably into this thing with accessories for about $650.00.From what I read it may magically return to a working state.Not really expecting that to happen though.Very disappointed!I won't darken ASUS's door with my business again.Moving my rating to 1 star (actually rating this device at zero however)10/20/2013Welp finally just tossed the tablet in the recycle bin today.Wish I never would have fallen for this tablet.Good riddance to this POS it truly is electronic garbage! |
| 38 | 11153 | 5 | 1 | 4 | -0.791 | -0.175 | -0.622 | 21 | We get these by the dozen for clients and I've yet to have one go bad. Not bad transfer speed. |
| 39 | 85509 | 1 | 5 | 4 | 0.913 | 0.300 | 0.601 | 91 | The product fits my 16.4" VAIO like a glove; thus nice job with the fit.Unfortunately, once the laptop is inside, it is difficult to get a good grip on the cover and I am very concerned that I might drop the laptop when top loading it into my briefcase. Sony could have chosen a better outside material, texture or finish. Or possibly a rib sewn along the edge; anything to allow a more confident grip.I will be modifying my cover soon by sewing a beading along the edge. |
| 40 | 57905 | 1 | 5 | 4 | -0.318 | 0.007 | -0.227 | 296 | I purchased this mount for my new Samsung un55f7500 based off of the 4.5 star rating and over 4000 reviews. Upon receiving the mount everything looked great. Once I started to put it together though, I began to regret my purchase. The vertical braces for the mount are held together with small screws. One of the screw holes for my mount was drilled too small for the provided hardware and would not hold the braces tight... Still jiggled. This gave me an uneasy feeling with it not being solidly held together, so I ran to home depot and got some 3/8 length 10 32 bolts and a couple nylon locking nuts and used those on the 4 corners to hold the braces together instead. Once the mount was assembled, I went to put it on the wall. Got everything lined up and level and started to torque down the lag bolts into the studs. I didn't even torque one of the bolts down fully and it ended up shearing off leaving me with just the bolt head falling out into my hands. Another trip to home depot and I had 4 galvanized lag bolts, some remeasuring and leveling later I got the mount bolted to the wall. One of the braces that attached to the back of the TV was stuck in the no tilt position. I donty plan on tilting my TV, so this wasn't a big deal. When it came time to screw in the safeties, only one of the holes was drilled properly. Couldn't get the other safety to screw in, so my TV only has 1.Overall I'm happy with some parts of the product, but pretty disappointed with some of the installation issues I had |
| 41 | 11274 | 1 | 5 | 4 | 0.919 | 0.378 | 0.351 | 68 | I bought this little piece of plastic because I had discovered that cupping my hand around the edge of my iPad 3 at the speaker port greatly enhanced the sound. But I find that my hand does a much better job than this device. I would not advise anyone to but their money into this gadget, even if it does sort of look like a Mickey Mouse ear. |
| 42 | 57979 | 1 | 5 | 4 | -0.930 | -0.017 | -0.101 | 223 | The problem with this computer is the Chrome OS. It is terrible. Google, instead of devoting resources to writing phony reviews, should fix the terrible thing. Now, my original review - I bought mine at Best Buy as an open box for 269.00 plus tax. Even at that price I wonder if I should keep it. Its' build quality is OK but make no mistake it is a work in progress and it has problems. I would describe it as similar to one of the evolving 7 inch tablet operating under an early android os. Oddly it doesn't a delete key which really irritates me. Also this thing is turnkey which means you have no control over the way the machine works which a lot of people will not be happy about and of course Google will be a pardner in whatever you do with the machine. Now after having used it for three weeks I find the Chrome OS limited and annoying - the oddball keyboard and trackpad are terrible. But what brings me back to my earlier review - I am concerned that the reviews for this thing are to a large extent phony. I would suggest that people read all 4 and 5 star reviews as possibly being written by a person who would benefit by this innovative device doing well |
| 43 | 65949 | 1 | 5 | 4 | 0.953 | 0.261 | 0.838 | 141 | I ordered three fans, two cooler master 120mm and this one 80mm Rosewill. All three seemed to work great. They lit up, they spun, they looked cool (best feature!). When I open my ASUS AI Suite II it said the Rosewill fan was spinning at an incredible 337,875,200 RPM... What the F#@%!!! If it was spinning that fast my computer would have achieved lift off!!! So I returned it. The replacement also read out at some ridiculous number and the motherboard monitor kept popping up a warning saying that my CPU fan had failed.I returned the second and bought a Thermaltake Thunderblade. It works well, looks much nicer in my clear case (it's clear, not pink like the Rosewill when off) and it spins at a proper 2376 RPM and is acceptably quiet. Buy one of those. |
| 44 | 85418 | 1 | 5 | 4 | 0.914 | 0.044 | 0.633 | 79 | I purchased the Black 3 feet lightning cable from Amazon basics, hoping to save a few bucks from a second Apple cable. I've purchased Amazon basics cables before, so it seemed like a good move. I was using this cable as one I kept downstairs and used it a couple of times per week. In less than 3 months, the cable no longer works. It didn't come apart like it did for others, just stopped working completely. |
| 45 | 11443 | 1 | 5 | 4 | 0.808 | 0.201 | 0.498 | 111 | I got this battery and it worked great. I brought it up to a full charge. I used it until it had about 25% charge left and recharged it. It worked great for about a week and now it will not hold a charge. If I fully charge it and shut down my laptop, in an hour, the computer will not start up because the battery is so low. If I hook up the power supply the battery reads 3% charge. You get what you pay for. I just threw $20.00 (battery + postage) down the toilet. This is not Amazon's fault. The seller must know the produt is junk. |
| 46 | 42795 | 1 | 5 | 4 | 0.733 | 0.388 | 0.288 | 25 | this antenna is a good qulity. that being said it is useless, the original 3 inch antenna on my router put out a better signal!!! |
| 47 | 65931 | 1 | 5 | 4 | 0.685 | 0.055 | 0.717 | 73 | I used all three screen protectors and have had no luck at all. My playbook was completely clean and the screen protector came with little dust & dirt that was noticeable. One of them was not even cut properly. Overall It is a nice screen protector if you can install it correctly, but it is way to hard to install and remove the bubbles completely spent over 3 hours in total before giving up. |
| 48 | 85384 | 1 | 5 | 4 | 0.847 | 0.306 | 0.578 | 96 | So I bought this along with a nice keyboard faux leather case for my Iconia. Case and keyboard, awesome, screen protector, JUNK.I've probably installed 500 or more screen protectors in my life, from small phones to 32 inch touch screens in commercial environments. I have never seen a SP produce so many airbubbles in my life.I was so completely disqusted with the product that I simply threw it away. It's 9 bucks I won't be wasting again, and it's a company I will not purchase from again.Simple as that. |
| 49 | 58076 | 1 | 5 | 4 | 0.660 | 0.110 | 0.720 | 45 | As long as your files are small and your not using a fast camera or something that loads the card fast then this will be fine for you. I recommend a higher level card not neccessary a different brand but I like the Sony cards. |
--- End of Worst Predictions Table for Ensemble --- --- Confidence vs. Performance Analysis for Ensemble ---
| Confidence Level | Num Reviews | Accuracy | Close Acc (+/-1S) | MAE | |
|---|---|---|---|---|---|
| 0 | V.Low (0-.25) | 14236 | 0.217 | 0.689 | 1.146 |
| 1 | Low (.25-.5) | 17800 | 0.395 | 0.845 | 0.820 |
| 2 | Med (.5-.75) | 31608 | 0.595 | 0.924 | 0.519 |
| 3 | High (.75-.9) | 20854 | 0.761 | 0.946 | 0.319 |
| 4 | V.High (.9-1) | 1051 | 0.885 | 0.987 | 0.133 |
------------------------------------------------------
2025-06-21 00:30:28 - INFO - evaluate_model - Evaluation for Ensemble complete. Evaluation for Ensemble complete. 2025-06-21 00:30:28 - INFO - evaluate_models - Model evaluation phase finished.
STEP 6: Generating Advanced Visualizations
2025-06-21 00:30:28 - INFO - generate_visualizations - Generating visualizations. Generating data distribution plots... 2025-06-21 00:30:28 - INFO - generate_visualizations - Plotting data distributions.
Generating rule-based feature analysis plots (Boxplots)... 2025-06-21 00:30:29 - INFO - generate_visualizations - Plotting rule-based feature analysis (Boxplots).
Generating additional rule-based feature analysis plots (Distributions, Heatmap)... 2025-06-21 00:30:31 - INFO - generate_visualizations - Plotting additional rule-based feature analysis (Distributions, Heatmap).
2025-06-21 00:30:33 - INFO - _plot_additional_feature_visuals - Key feature distribution plots saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/key_features_distributions.png
2025-06-21 00:30:34 - INFO - _plot_additional_feature_visuals - Feature correlation heatmap saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/numerical_features_correlation_heatmap.png Generating category analysis plots... 2025-06-21 00:30:34 - INFO - generate_visualizations - Plotting category analysis.
Generating detailed model comparison plots (including Radar Chart)... 2025-06-21 00:30:34 - INFO - generate_visualizations - Plotting model comparisons (including Radar). Generating enhanced radar chart for model comparison...
Generating ABSA summary visualizations... 2025-06-21 00:30:36 - INFO - generate_visualizations - Generating ABSA visualizations.
2025-06-21 00:30:36 - INFO - _plot_aspect_sentiment_distribution - Saved ABSA plot: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/absa_analysis/overall_aspect_sentiments.png
2025-06-21 00:30:37 - INFO - _plot_aspect_sentiment_distribution - Saved ABSA plot: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/absa_analysis/category_electronics_aspect_sentiments.png
2025-06-21 00:30:37 - INFO - _plot_aspect_sentiment_distribution - Saved ABSA plot: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/absa_analysis/category_clothing_aspect_sentiments.png
2025-06-21 00:30:37 - INFO - _plot_aspect_sentiment_distribution - Saved ABSA plot: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/absa_analysis/category_home_aspect_sentiments.png
2025-06-21 00:30:37 - INFO - _plot_aspect_sentiment_distribution - Saved ABSA plot: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/absa_analysis/category_books_aspect_sentiments.png 2025-06-21 00:30:38 - INFO - generate_absa_summary_visualizations - Aggregated ABSA data saved to /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/absa_analysis/absa_summary_data.csv 2025-06-21 00:30:38 - INFO - generate_absa_summary_visualizations - ABSA summary visualizations generated. Visualization generation phase finished! 2025-06-21 00:30:38 - INFO - generate_visualizations - Visualization completed. ------------------------------------------------------------ --- Starting Cross-Validation Analysis (Rule-Based Models) ---
STEP 7: Cross-Validation Analysis
2025-06-21 00:30:38 - INFO - perform_cross_validation_analysis - Initiating CV analysis. Performing 5-fold CV for selected rule-based models... Cross-validating VADER... Cross-validating TextBlob... Cross-validating Feature-Based... Cross-validating N-gram Enhanced... --- Cross-Validation Results (5-Fold) ---
| Accuracy (Mean) | Accuracy (Std) | MAE (Mean) | MAE (Std) | F1 Close Acc. (Mean) | F1 Close Acc. (Std) | |
|---|---|---|---|---|---|---|
| VADER | 0.468600 | 0.001600 | 0.841500 | 0.003800 | 0.888200 | 0.001600 |
| TextBlob | 0.159900 | 0.001000 | 1.281900 | 0.003100 | 0.730900 | 0.002200 |
| Feature-Based | 0.519700 | 0.002200 | 0.773500 | 0.005300 | 0.893700 | 0.001500 |
| N-gram Enhanced | 0.405900 | 0.002700 | 0.829100 | 0.006100 | 0.898800 | 0.001700 |
2025-06-21 00:30:44 - INFO - perform_cross_validation_analysis - CV results saved: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/cross_validation_analysis_results.csv CV results saved: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/cross_validation_analysis_results.csv Cross-validation analysis phase complete! ------------------------------------------------------------ --- Starting Clustering Analysis (on Rule-Based Features) ---
STEP 8: Clustering Analysis (on Rule-Based Features)
2025-06-21 00:30:44 - INFO - perform_clustering_analysis - Initiating clustering analysis. Performing clustering on rule-based features... Determining optimal k in range range(2, 11) using Silhouette Score... Optimal k: 2 (Silhouette: 0.440) --- Clustering Analysis Summary (k=2) ---
| Cluster_ID | Num_Reviews_in_Cluster | Average_Rating | Rating_StdDev | Top_Category | |
|---|---|---|---|---|---|
| 0 | 0 | 9888 | 4.011226 | 1.209863 | electronics |
| 1 | 1 | 90046 | 4.247052 | 1.179567 | electronics |
2025-06-21 00:37:14 - INFO - perform_clustering_analysis - Clustering results saved: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/clustering_analysis_results.json Clustering results saved: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/clustering_analysis_results.json Clustering analysis phase complete! ------------------------------------------------------------
STEP 9: Generating Analysis Report
2025-06-21 00:37:14 - INFO - generate_report - Report generation initiated. 2025-06-21 00:37:15 - INFO - generate_report - Analysis report saved: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/sentiment_analysis_report_transformer_absa.md Analysis report saved: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/sentiment_analysis_report_transformer_absa.md Report Snippet (first 500 chars):
Sentiment Analysis Report (Transformer & ABSA Enhanced)¶
Date Generated: 2025-06-21 00:37:14
Results Directory: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331
Overview of Pipeline Capabilities¶
This pipeline incorporates:
- Hybrid Modeling: Rule-based models combined with Transformer-based models (e.g., RoBERTa) for overall sentiment.
- Fine-grained Insights: Aspect-Based Sentiment Analysis (ABSA) for specific feature sentiment.
... (Full report saved)
2025-06-21 00:37:15 - INFO - generate_report - Report generation finished: /Users/777david/sentiment_analysis/sentiment_results_transformer_absa_20250620_233331/sentiment_analysis_report_transformer_absa.md Report generation finished! ------------------------------------------------------------
COMPLETE PYTHON CODE
Below is the complete Python source code supporting the output above. This provides a transparent demonstration of the pipeline's capabilities and my coding work.
import sys
import os
import re
import time
import json
import math
import logging
import warnings
from datetime import datetime
from functools import lru_cache
from typing import Dict, List, Tuple, Union, Optional, Any, Set
from collections import Counter, defaultdict
# Suppress warnings for cleaner output
warnings.filterwarnings("ignore", category=FutureWarning)
warnings.filterwarnings("ignore", category=UserWarning)
# Suppress specific sklearn warnings as requested
warnings.filterwarnings("ignore", category=RuntimeWarning, module="sklearn.utils.extmath")
warnings.filterwarnings("ignore", category=RuntimeWarning, module="sklearn.cluster._kmeans")
warnings.filterwarnings("ignore", message="Some weights of the model checkpoint at bert-base-uncased were not used when initializing BertModel")
warnings.filterwarnings("ignore", message="KMeans is known to have a memory leak on Windows with MKL")
# Core data science libraries
try:
import numpy as np
import pandas as pd
from sklearn.metrics import (
confusion_matrix, f1_score, precision_score, recall_score,
cohen_kappa_score, mean_absolute_error, mean_squared_error,
classification_report, silhouette_score
)
from sklearn.model_selection import train_test_split, cross_val_score, StratifiedKFold
from sklearn.cluster import KMeans
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.preprocessing import StandardScaler
print("Core data science libraries loaded successfully")
except ImportError as e:
print(f"CRITICAL ERROR: Missing core libraries: {e}")
print("Please install: pip install numpy pandas scikit-learn scipy")
sys.exit(1)
# Visualization libraries
try:
import matplotlib.pyplot as plt
import seaborn as sns
import plotly.graph_objects as go
import plotly.express as px
from plotly.subplots import make_subplots
plt.style.use('seaborn-v0_8-whitegrid')
sns.set_palette("husl")
matplotlib_available = True
plotly_available = True
print("Visualization libraries (matplotlib, seaborn, plotly) loaded successfully")
except ImportError:
try:
import matplotlib.pyplot as plt
import seaborn as sns
plt.style.use('seaborn-v0_8-whitegrid')
sns.set_palette("husl")
matplotlib_available = True
plotly_available = False
print("Basic visualization libraries loaded (plotly not available)")
except ImportError:
print("Visualization libraries not available")
matplotlib_available = False
plotly_available = False
# Natural Language Processing libraries
try:
from textblob import TextBlob
import emoji as emoji_lib
textproc_available = True
print("Text processing libraries loaded successfully")
except ImportError:
print("TextBlob/Emoji not available - some features will be limited (e.g., rule-based ABSA fallback).")
textproc_available = False
# Transformer library for advanced NLP models
try:
import torch
from transformers import pipeline, AutoTokenizer, AutoModelForSequenceClassification
transformers_available = True
TRANSFORMER_DEVICE = torch.device("cuda" if torch.cuda.is_available() else "cpu")
print(f"Transformer libraries (transformers, torch) loaded successfully. Using device: {TRANSFORMER_DEVICE}")
except ImportError as e:
print(f"Transformers/PyTorch not available - BERT/RoBERTa models and advanced ABSA will be disabled: {e}")
print("Please install: pip install transformers torch torchvision torchaudio sentencepiece")
transformers_available = False
TRANSFORMER_DEVICE = "cpu" # Fallback to CPU if torch import fails but transformers is there (less likely)
# Progress tracking
try:
from tqdm.auto import tqdm
tqdm_available = True
print("Progress tracking (tqdm) loaded successfully")
except ImportError:
print("tqdm not available - using basic progress indication")
tqdm_available = False
class tqdm:
def __init__(self, iterable=None, desc=None, total=None, **kwargs):
self.iterable = iterable
self.desc = desc or ""
self.total = total or (len(iterable) if hasattr(iterable, '__len__') else None)
self.n = 0
self.start_time = time.time()
print(f"{self.desc}: Starting...")
def __iter__(self):
for i, item in enumerate(self.iterable):
yield item
self.n += 1
if self.total and self.total > 0:
if i % max(1, self.total // 20) == 0 or i == self.total - 1:
elapsed_time = time.time() - self.start_time
progress_percent = 100 * (i + 1) / self.total
print(f"{self.desc}: {i+1}/{self.total} ({progress_percent:.1f}%) - Elapsed: {elapsed_time:.2f}s")
if self.total:
print(f"{self.desc}: Completed in {time.time() - self.start_time:.2f}s!")
def update(self, n=1):
self.n += n
if self.total and self.total > 0:
if self.n % max(1, self.total // 20) == 0 or self.n == self.total:
elapsed_time = time.time() - self.start_time
progress_percent = 100 * self.n / self.total
print(f"{self.desc}: {self.n}/{self.total} ({progress_percent:.1f}%) - Elapsed: {elapsed_time:.2f}s")
def close(self):
if self.total and self.n < self.total:
print(f"{self.desc}: Closed prematurely at {self.n}/{self.total}.")
elif self.total and self.desc:
print(f"{self.desc}: Progress bar closed.")
pass
# Jupyter widgets (still used for `display_section_header` and `safe_display` if available)
try:
from IPython.display import display, HTML, Markdown, clear_output
ipywidgets_available = True
print("IPython.display loaded successfully")
except ImportError:
print("IPython.display not available")
ipywidgets_available = False
def display(x): print(x)
def HTML(x): return str(x)
def Markdown(x): return str(x)
def clear_output(wait=False): pass
# Word cloud library (kept for potential simple use cases, but ABSA is primary)
try:
from wordcloud import WordCloud, STOPWORDS as WC_STOPWORDS
wordcloud_available = True
print("WordCloud library loaded successfully (though ABSA is now primary for text insights)")
except ImportError:
print("WordCloud library not available")
wordcloud_available = False
# Request library for downloads
try:
import requests
requests_available = True
print("Requests library loaded successfully")
except ImportError:
print("Requests library not available")
requests_available = False
print("\nStarting Sentiment Analysis Pipeline with Transformer and ABSA capabilities...")
print("=" * 60)
#%% === NLTK INITIALIZATION ===
def initialize_nltk_resources():
global NLTK_INITIALIZED
try:
import nltk
print("\nInitializing NLTK resources...")
nltk_data_dir = os.path.expanduser('~/nltk_data')
os.makedirs(nltk_data_dir, exist_ok=True)
if nltk_data_dir not in nltk.data.path:
nltk.data.path.append(nltk_data_dir)
resources = {
'vader_lexicon': 'VADER sentiment analyzer',
'punkt': 'Punkt tokenizer',
'averaged_perceptron_tagger': 'POS tagger',
'wordnet': 'WordNet corpus',
'stopwords': 'Stopwords corpus',
'omw-1.4': 'Open Multilingual Wordnet 1.4'
}
print("Checking required NLTK resources (will download if not present):")
all_downloaded_successfully = True
for resource, description in resources.items():
is_available = False
try:
if resource == 'vader_lexicon':
from nltk.sentiment.vader import SentimentIntensityAnalyzer
SentimentIntensityAnalyzer()
elif resource == 'punkt': nltk.data.find('tokenizers/punkt')
elif resource == 'averaged_perceptron_tagger': nltk.data.find('taggers/averaged_perceptron_tagger')
elif resource == 'wordnet':
try: nltk.data.find('corpora/wordnet.zip')
except LookupError: nltk.data.find('corpora/wordnet/index.verb')
from nltk.corpus import wordnet as wn
wn.ensure_loaded()
elif resource == 'stopwords': nltk.data.find('corpora/stopwords')
elif resource == 'omw-1.4': nltk.data.find('corpora/omw-1.4')
is_available = True
print(f" Resource '{description}' ({resource}) is available.")
except LookupError: print(f" Resource '{description}' ({resource}) not found. Attempting download...")
except Exception as e_check: print(f" Error during initial check for '{description}' ({resource}): {e_check}. Attempting download...")
if not is_available:
try:
print(f" Downloading '{description}' ({resource})...")
download_result = nltk.download(resource, quiet=False, download_dir=nltk_data_dir)
if download_result:
print(f" Successfully downloaded '{description}' ({resource}).")
if resource == 'wordnet':
try: from nltk.corpus import wordnet as wn; wn.ensure_loaded(); print(f" WordNet verified after download.")
except Exception as e_verify: print(f" WordNet verification failed after download: {e_verify}"); all_downloaded_successfully = False
elif resource == 'vader_lexicon':
try: from nltk.sentiment.vader import SentimentIntensityAnalyzer; SentimentIntensityAnalyzer().polarity_scores("test"); print(f" VADER verified after download.")
except Exception as e_verify: print(f" VADER verification failed after download: {e_verify}"); all_downloaded_successfully = False
else: print(f" Download reported failure for '{description}' ({resource})."); all_downloaded_successfully = False
except Exception as e_download: print(f" Failed to download or verify '{description}' ({resource}): {e_download}"); all_downloaded_successfully = False
if not all_downloaded_successfully: print("\nWarning: Not all NLTK resources were successfully downloaded or verified.")
try:
from nltk.sentiment.vader import SentimentIntensityAnalyzer
from nltk.tokenize import word_tokenize, sent_tokenize
from nltk.stem import WordNetLemmatizer
from nltk.corpus import stopwords, wordnet
SentimentIntensityAnalyzer().polarity_scores("test")
word_tokenize("test tokenization"); sent_tokenize("Test. Sentence tokenization.")
WordNetLemmatizer().lemmatize("tests", pos=wordnet.NOUN)
set(stopwords.words('english'))
NLTK_INITIALIZED = True
print("NLTK initialization completed successfully!")
return True
except Exception as e: print(f"NLTK component test failed: {e}"); NLTK_INITIALIZED = False; return False
except ImportError: print("NLTK library not installed. Install with: pip install nltk"); NLTK_INITIALIZED = False; return False
except Exception as e: print(f"Unexpected error during NLTK initialization: {e}"); NLTK_INITIALIZED = False; return False
NLTK_INITIALIZED = False
initialize_nltk_resources()
#%% === GLOBAL CONFIGURATION AND CONSTANTS ===
POSITIVE_WORDS = {'excellent', 'amazing', 'wonderful', 'fantastic', 'outstanding', 'brilliant', 'superb', 'great', 'good', 'best', 'perfect', 'love', 'awesome', 'incredible', 'impressive', 'delighted', 'satisfied', 'happy', 'pleased', 'recommend', 'favorite', 'nice', 'easy', 'fast', 'effective', 'reliable', 'quality', 'comfortable', 'beautiful', 'works', 'responsive', 'durable', 'compatible', 'smooth', 'stylish', 'soft'}
NEGATIVE_WORDS = {'terrible', 'awful', 'horrible', 'worst', 'bad', 'poor', 'disappointing', 'hate', 'useless', 'broken', 'defective', 'fail', 'failure', 'problem', 'issue', 'cheap', 'waste', 'regret', 'return', 'refund', 'complaint', 'avoid', 'mediocre', 'junk', 'slow', 'difficult', 'frustrating', 'inferior', 'subpar', 'flawed', 'damaged'}
INTENSIFIERS = {'very', 'extremely', 'absolutely', 'incredibly', 'really', 'truly', 'highly', 'especially', 'particularly', 'exceptionally', 'totally', 'completely', 'utterly', 'thoroughly', 'so', 'too', 'quite', 'remarkably', 'super', 'ultra'}
NEGATION_TERMS = {'not', 'no', "n't", 'never', 'neither', 'nor', 'none', 'nothing', 'without', 'hardly', 'scarcely', 'barely'}
DOMAIN_WORDS = {
'electronics': {'positive': {'fast', 'responsive', 'reliable', 'quality', 'performance', 'durable', 'compatible', 'battery', 'screen', 'audio', 'video', 'wireless', 'clear', 'sharp', 'bright', 'efficient', 'powerful', 'stable', 'connectivity'}, 'negative': {'broken', 'slow', 'lag', 'crash', 'malfunction', 'defective', 'incompatible', 'overheat', 'noisy', 'dead', 'static', 'blurry', 'dim', 'unstable', 'disconnect', 'freeze', 'error'}},
'clothing': {'positive': {'comfortable', 'soft', 'quality', 'stylish', 'perfect', 'fit', 'beautiful', 'warm', 'cozy', 'flattering', 'breathable', 'fashionable', 'elegant', 'attractive', 'luxurious', 'smooth'}, 'negative': {'small', 'large', 'tight', 'cheap', 'shrink', 'ripped', 'thin', 'itchy', 'faded', 'loose', 'uncomfortable', 'scratchy', 'rough', 'wrinkled', 'poor', 'worn'}},
'books': {'positive': {'engaging', 'interesting', 'well-written', 'compelling', 'enjoyed', 'recommend', 'insightful', 'gripping', 'page-turner', 'brilliant', 'informative', 'educational', 'entertaining', 'thoughtful'}, 'negative': {'boring', 'slow', 'predictable', 'disappointed', 'waste', 'poorly', 'confusing', 'shallow', 'unrealistic', 'dragging', 'repetitive', 'tedious', 'dull'}},
'food': {'positive': {'delicious', 'tasty', 'fresh', 'flavorful', 'yummy', 'healthy', 'organic', 'crispy', 'creamy', 'savory', 'sweet', 'nutritious', 'gourmet', 'satisfying'}, 'negative': {'stale', 'expired', 'tasteless', 'rotten', 'bland', 'sour', 'artificial', 'moldy', 'greasy', 'soggy', 'bitter', 'spoiled', 'disgusting'}},
'beauty': {'positive': {'effective', 'natural', 'smooth', 'gentle', 'clean', 'glowing', 'hydrating', 'refreshing', 'lightweight', 'absorbs', 'nourishing', 'moisturizing', 'radiant'}, 'negative': {'irritation', 'breakout', 'greasy', 'sticky', 'harsh', 'chemical', 'allergic', 'drying', 'heavy', 'residue', 'burning', 'reaction'}},
'home': {'positive': {'sturdy', 'functional', 'beautiful', 'organized', 'convenient', 'bright', 'useful', 'powerful', 'quiet', 'durable', 'spacious', 'modern', 'elegant'}, 'negative': {'flimsy', 'wobbly', 'broken', 'damaged', 'leaky', 'loud', 'difficult', 'cheap', 'unstable', 'cramped', 'outdated'}}
}
# FIXED: Split technical specs into truly generic vs category-specific
PRODUCT_SPEC_WORDS = {
'generic_specs': {'size', 'weight', 'color', 'material', 'dimension', 'design', 'build', 'construction', 'durability', 'assembly', 'installation', 'usability', 'price', 'value', 'quality'},
'electronics_specs': {'processor', 'ram', 'storage_type', 'gpu', 'display_type', 'refresh_rate', 'port', 'os', 'software', 'capacity', 'speed', 'resolution', 'frequency', 'voltage', 'wattage', 'memory', 'storage', 'connectivity', 'interface', 'compatibility', 'specification', 'feature', 'performance', 'functionality', 'battery', 'screen', 'audio', 'video', 'camera', 'keyboard', 'mouse', 'wireless'},
'clothing_specs': {'fabric', 'stitching', 'zipper', 'button', 'collar', 'sleeve', 'waist', 'inseam', 'sizing_chart', 'fit', 'comfortable', 'soft', 'warm', 'breathable'},
'books_specs': {'author', 'genre', 'pages', 'cover_type', 'publisher', 'series', 'edition', 'plot', 'character', 'writing_style'},
'food_specs': {'ingredient', 'nutrition', 'allergen', 'flavor_profile', 'texture', 'portion_size', 'origin', 'freshness_date'},
'beauty_specs': {'ingredient_list', 'skin_type', 'hair_type', 'fragrance', 'application', 'spf', 'volume', 'shade'},
'home_specs': {'material_quality', 'assembly_time', 'warranty', 'maintenance', 'energy_efficiency', 'dimensions_w_h_d'}
}
ALL_DOMAIN_WORDS = set().union(*(cat_data.get('positive', set()) | cat_data.get('negative', set()) for cat_data in DOMAIN_WORDS.values()))
ALL_SPEC_WORDS = set().union(*(spec_set for spec_set in PRODUCT_SPEC_WORDS.values()))
ALL_SENTIMENT_WORDS = POSITIVE_WORDS.union(NEGATIVE_WORDS)
print(f"Loaded {len(POSITIVE_WORDS)} positive words, {len(NEGATIVE_WORDS)} negative words, {len(ALL_DOMAIN_WORDS)} domain words, {len(ALL_SPEC_WORDS)} spec words.")
#%% === UTILITY FUNCTIONS ===
def setup_logging(results_dir: str) -> logging.Logger:
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
log_file = os.path.join(results_dir, f"sentiment_analysis_{timestamp}.log")
logger = logging.getLogger('sentiment_pipeline')
if logger.hasHandlers(): logger.handlers.clear()
formatter = logging.Formatter('%(asctime)s - %(levelname)s - %(funcName)s - %(message)s', datefmt='%Y-%m-%d %H:%M:%S')
file_handler = logging.FileHandler(log_file, encoding='utf-8'); file_handler.setFormatter(formatter); file_handler.setLevel(logging.INFO)
console_handler = logging.StreamHandler(sys.stdout); console_handler.setFormatter(formatter); console_handler.setLevel(logging.INFO)
logger.addHandler(file_handler); logger.addHandler(console_handler); logger.setLevel(logging.INFO)
logger.info("=" * 60 + f"\nSentiment Analysis Pipeline Logger Initialized\nResults directory: {results_dir}\nLog file: {log_file}\n" + "=" * 60)
return logger
def display_section_header(title: str, level: int = 1) -> None:
if ipywidgets_available and is_jupyter_environment():
colors = ['#2E8B57', '#4169E1', '#FF6347', '#1E90FF'];
color_idx = min(level-1, len(colors)-1)
color = colors[color_idx]
display(HTML(f"""<div style="background: linear-gradient(90deg, {color}22 0%, {color}11 100%); border-left: 4px solid {color}; padding: 15px 20px; margin: 20px 0; border-radius: 5px; box-shadow: 0 2px 4px rgba(0,0,0,0.1);"><h{level} style="color: {color}; margin: 0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; font-weight: 600;">{title}</h{level}></div>"""))
else: print(f"\n{'='*(60-level*5)}\n{'#'*level} {title}\n{'='*(60-level*5)}")
def safe_display(data) -> None:
try:
if isinstance(data, (pd.DataFrame, pd.Series)):
if ipywidgets_available and is_jupyter_environment():
if isinstance(data, pd.DataFrame) and len(data) > 0:
# Ensure DataFrame passed to Styler has a unique index or reset it.
# If 'index' is a column name, it could conflict.
df_to_style = data.copy()
if 'index' in df_to_style.columns and not df_to_style.index.is_unique:
# If 'index' column exists and index is not unique, it might be safer to reset.
# This is a heuristic; the Styler error is often about the DataFrame's actual index.
pass # Assuming df_to_style has a RangeIndex from pd.DataFrame(list_of_dicts)
# Ensure the DataFrame index is unique for Styler
if not df_to_style.index.is_unique:
df_to_style = df_to_style.reset_index(drop=True)
display(df_to_style.style.set_table_styles([
{'selector': 'th', 'props': [('background-color', '#f0f2f6'), ('color', '#2c3e50'), ('font-weight', 'bold'), ('padding', '8px'), ('text-align', 'left')]},
{'selector': 'td', 'props': [('padding', '8px'), ('text-align', 'left')]},
{'selector': 'tr:nth-child(even)', 'props': [('background-color', '#f8f9fa')]}
]).set_properties(**{'border': '1px solid #ddd', 'width': 'auto'}))
else:
display(HTML(data.to_html(max_rows=50, notebook=True)))
else:
print(data.to_string(max_rows=100))
else:
if ipywidgets_available and is_jupyter_environment():
display(data)
else:
print(data)
except KeyError as ke:
# Specifically catch the Styler KeyError if it still happens
print(f"Display error (likely Styler incompatibility with DataFrame index/columns): {ke}\nAttempting basic print...\n{data.to_string(max_rows=100)}")
except Exception as e:
print(f"Display error: {e}\nAttempting basic print...\n{data}")
def is_jupyter_environment() -> bool:
try:
from IPython import get_ipython
if get_ipython() is not None and get_ipython().__class__.__name__ != 'TerminalInteractiveShell': return True
except ImportError: return False
return False
@lru_cache(maxsize=10000)
def get_wordnet_pos(treebank_tag: str) -> str:
if not NLTK_INITIALIZED: return 'n'
try:
from nltk.corpus import wordnet
if treebank_tag.startswith('J'): return wordnet.ADJ
elif treebank_tag.startswith('V'): return wordnet.VERB
elif treebank_tag.startswith('N'): return wordnet.NOUN
elif treebank_tag.startswith('R'): return wordnet.ADV
else: return wordnet.NOUN
except Exception: return 'n'
@lru_cache(maxsize=50000)
def lemmatize_word(word: str, pos_tag: str) -> str:
if not NLTK_INITIALIZED: return word
try:
from nltk.stem import WordNetLemmatizer
return WordNetLemmatizer().lemmatize(word, pos=get_wordnet_pos(pos_tag))
except Exception: return word
def extract_ngrams(text: str, n: int = 2) -> List[str]:
if not text or not isinstance(text, str): return []
words = text.split()
if len(words) < n: return []
return [' '.join(words[i:i + n]) for i in range(len(words) - n + 1)]
#%% === ENHANCED TEXT PREPROCESSING ===
class TextPreprocessor:
def __init__(self, resources: dict = None):
self.resources = resources or {}
fallback_stopwords = {"i", "me", "my", "myself", "we", "our", "ours", "ourselves", "you", "your", "yours", "yourself", "yourselves", "he", "him", "his", "himself", "she", "her", "hers", "herself", "it", "its", "itself", "they", "them", "their", "theirs", "themselves", "what", "which", "who", "whom", "this", "that", "these", "those", "am", "is", "are", "was", "were", "be", "been", "being", "have", "has", "had", "having", "do", "does", "did", "doing", "a", "an", "the", "and", "but", "if", "or", "because", "as", "until", "while", "of", "at", "by", "for", "with", "about", "against", "between", "into", "through", "during", "before", "after", "above", "below", "to", "from", "up", "down", "in", "out", "on", "off", "over", "under", "again", "further", "then", "once", "here", "there", "when", "where", "why", "how", "all", "any", "both", "each", "few", "more", "most", "other", "some", "such", "no", "nor", "not", "only", "own", "same", "so", "than", "too", "very", "s", "t", "can", "will", "just", "don", "should", "now"}
self.stop_words = self.resources.get('stop_words', fallback_stopwords) if NLTK_INITIALIZED and 'stop_words' in self.resources and self.resources['stop_words'] else fallback_stopwords
self.review_stopwords = {'product', 'item', 'review', 'amazon', 'bought', 'purchase', 'order', 'price', 'money', 'buy', 'get', 'use', 'used', 'using', 'time', 'would', 'could', 'should', 'one', 'two', 'three', 'also', 'even'}
self.all_stopwords = self.stop_words.union(self.review_stopwords)
def clean_text(self, text: str) -> str:
if not isinstance(text, str) or pd.isna(text): return ""
text = text.lower()
if textproc_available:
try: text = emoji_lib.demojize(text, delimiters=(" ", " "))
except Exception: pass
text = re.sub(r'http[s]?://\S+', ' ', text)
text = re.sub(r'@\w+', ' ', text)
text = re.sub(r'\b[A-Za-z0-9]{20,}\b', ' ', text)
text = re.sub(r"[^a-z0-9\s'.!?]", " ", text)
text = re.sub(r'\s+', ' ', text).strip()
return text
def tokenize_and_lemmatize(self, text: str) -> List[str]:
if not text: return []
if not NLTK_INITIALIZED: return [word for word in text.split() if word not in self.all_stopwords and len(word) > 1 and word.isalpha()]
try:
from nltk.tokenize import word_tokenize; from nltk.tag import pos_tag
text_for_lemma = re.sub(r"[^a-z0-9\s']", " ", text.lower()); text_for_lemma = re.sub(r'\s+', ' ', text_for_lemma).strip()
tokens = word_tokenize(text_for_lemma)
try: tagged_tokens = pos_tag(tokens)
except Exception: tagged_tokens = [(token, 'NN') for token in tokens]
return [lemmatize_word(word, tag) for word, tag in tagged_tokens if word not in self.all_stopwords and len(word) > 1 and word.isalpha()]
except Exception: return [word for word in text.split() if word not in self.all_stopwords and len(word) > 1 and word.isalpha()]
def preprocess_text_for_rule_based(self, text: str) -> str:
cleaned = self.clean_text(text)
tokens = self.tokenize_and_lemmatize(cleaned)
return ' '.join(tokens)
def preprocess_text_for_transformers(self, text: str) -> str:
if not isinstance(text, str) or pd.isna(text): return ""
text = text.lower()
if textproc_available:
try: text = emoji_lib.demojize(text, delimiters=(" ", " "))
except Exception: pass
text = re.sub(r'http[s]?://\S+', ' ', text)
text = re.sub(r'@\w+', ' ', text)
text = re.sub(r'\s+', ' ', text).strip()
return text
def batch_preprocess(self, texts: List[str], mode: str = 'rule_based', batch_size: int = 1000) -> List[str]:
if not texts: return []
total_texts = len(texts); processed_texts = []
preprocess_func = self.preprocess_text_for_rule_based if mode == 'rule_based' else self.preprocess_text_for_transformers
global tqdm; progress_bar_desc = f"Preprocessing texts ({mode} - Batch)"
p_bar = tqdm(total=total_texts, desc=progress_bar_desc, unit="texts") if tqdm_available else None
if not p_bar: print(f"{progress_bar_desc}: Starting for {total_texts} texts...")
for i in range(0, total_texts, batch_size):
batch = texts[i:min(i + batch_size, total_texts)]
processed_texts.extend([preprocess_func(text) for text in batch])
if p_bar: p_bar.update(len(batch))
elif (i // batch_size) % max(1, (total_texts // batch_size) // 10) == 0 or i + batch_size >= total_texts: print(f"{progress_bar_desc}: {len(processed_texts)}/{total_texts} processed...")
if p_bar: p_bar.close()
else: print(f"{progress_bar_desc}: Completed processing {len(processed_texts)} texts!")
return processed_texts
#%% === ENHANCED FEATURE EXTRACTION (for Rule-Based Models) ===
class FeatureExtractor:
def __init__(self, resources: dict = None):
self.resources = resources or {}
if NLTK_INITIALIZED and 'vader_analyzer' in self.resources and self.resources['vader_analyzer']: self.vader_analyzer = self.resources.get('vader_analyzer')
else:
try: from nltk.sentiment.vader import SentimentIntensityAnalyzer; self.vader_analyzer = SentimentIntensityAnalyzer()
except: self.vader_analyzer = None
def extract_basic_features(self, text: str) -> Dict[str, Any]:
raw_words = re.findall(r'\b\w+\b', text.lower()); wc = len(raw_words)
sc = len(re.findall(r'[.!?]+', text)) if text else 0; sc = 1 if sc == 0 and wc > 0 else sc
return {'text_length': len(text), 'word_count': wc, 'sentence_count': sc, 'avg_word_length': np.mean([len(w) for w in raw_words if w]) if wc > 0 else 0}
def extract_sentiment_features(self, text: str) -> Dict[str, Any]:
features = {'vader_negative': 0.0, 'vader_neutral': 1.0, 'vader_positive': 0.0, 'vader_compound': 0.0, 'textblob_polarity': 0.0, 'textblob_subjectivity': 0.5}
if self.vader_analyzer:
try: vs = self.vader_analyzer.polarity_scores(text); features.update({'vader_negative': vs['neg'], 'vader_neutral': vs['neu'], 'vader_positive': vs['pos'], 'vader_compound': vs['compound']})
except Exception: pass
if textproc_available:
try: blob = TextBlob(text); features['textblob_polarity'] = blob.sentiment.polarity; features['textblob_subjectivity'] = blob.sentiment.subjectivity
except Exception: pass
return features
def extract_lexicon_features(self, preprocessed_text_for_rules: str) -> Dict[str, Any]:
words = set(preprocessed_text_for_rules.lower().split()) if preprocessed_text_for_rules else set()
pc = len(words.intersection(POSITIVE_WORDS)); nc = len(words.intersection(NEGATIVE_WORDS))
features = {'positive_word_count': pc, 'negative_word_count': nc, 'intensifier_count': len(words.intersection(INTENSIFIERS)), 'negation_count': len(words.intersection(NEGATION_TERMS))}
tsc = pc + nc; features['sentiment_ratio'] = (pc / tsc if tsc > 0 else 0.5)
return features
def extract_domain_features(self, preprocessed_text_for_rules: str, category: str = 'unknown') -> Dict[str, Any]:
words = set(preprocessed_text_for_rules.lower().split()) if preprocessed_text_for_rules else set()
domain_data = DOMAIN_WORDS.get(category, {'positive': set(), 'negative': set()})
return {'domain_positive_count': len(words.intersection(domain_data.get('positive', set()))), 'domain_negative_count': len(words.intersection(domain_data.get('negative', set())))}
def extract_linguistic_features(self, raw_text: str) -> Dict[str, Any]:
features = {'exclamation_count': raw_text.count('!') if raw_text else 0, 'question_count': raw_text.count('?') if raw_text else 0, 'caps_ratio': sum(1 for c in raw_text if c.isupper()) / len(raw_text) if raw_text and len(raw_text) > 0 else 0.0, 'digit_count': sum(1 for c in raw_text if c.isdigit()) if raw_text else 0}
star_patterns = {'mentions_5_star': r'\b(5|five)[\s-]*stars?\b', 'mentions_4_star': r'\b(4|four)[\s-]*stars?\b', 'mentions_3_star': r'\b(3|three)[\s-]*stars?\b', 'mentions_2_star': r'\b(2|two)[\s-]*stars?\b', 'mentions_1_star': r'\b(1|one)[\s-]*stars?\b'}
for feat, patt in star_patterns.items(): features[feat] = bool(re.search(patt, raw_text, re.IGNORECASE)) if raw_text else False
return features
def extract_ngram_features(self, preprocessed_text_for_rules: str) -> Dict[str, Any]:
features = {}
for n in [2, 3]:
ngrams = extract_ngrams(preprocessed_text_for_rules, n); features[f'{n}gram_count'] = len(ngrams)
pos_ng, neg_ng = 0,0
for ngram in ngrams: words = set(ngram.split()); pos_ng += 1 if not words.isdisjoint(POSITIVE_WORDS) else 0; neg_ng += 1 if not words.isdisjoint(NEGATIVE_WORDS) else 0
features[f'{n}gram_positive_count'] = pos_ng; features[f'{n}gram_negative_count'] = neg_ng
return features
def extract_all_features(self, raw_text: str, preprocessed_text_for_rules: str, category: str = 'unknown') -> Dict[str, Any]:
if not raw_text or pd.isna(raw_text): return self._get_default_features()
features = {}; features.update(self.extract_basic_features(raw_text)); features.update(self.extract_sentiment_features(raw_text)); features.update(self.extract_linguistic_features(raw_text))
features.update(self.extract_lexicon_features(preprocessed_text_for_rules)); features.update(self.extract_domain_features(preprocessed_text_for_rules, category)); features.update(self.extract_ngram_features(preprocessed_text_for_rules))
features['custom_sentiment_score'] = self._compute_custom_sentiment(features)
return features
def _get_default_features(self) -> Dict[str, Any]:
defaults = {'text_length': 0, 'word_count': 0, 'sentence_count': 0, 'avg_word_length': 0.0, 'vader_negative': 0.0, 'vader_neutral': 1.0, 'vader_positive': 0.0, 'vader_compound': 0.0, 'textblob_polarity': 0.0, 'textblob_subjectivity': 0.5, 'positive_word_count': 0, 'negative_word_count': 0, 'intensifier_count': 0, 'negation_count': 0, 'sentiment_ratio': 0.5, 'domain_positive_count': 0, 'domain_negative_count': 0, 'exclamation_count': 0, 'question_count': 0, 'caps_ratio': 0.0, 'digit_count': 0, 'mentions_5_star': False, 'mentions_4_star': False, 'mentions_3_star': False, 'mentions_2_star': False, 'mentions_1_star': False, 'custom_sentiment_score': 0.0}
for n in [2, 3]: defaults[f'{n}gram_count']=0; defaults[f'{n}gram_positive_count']=0; defaults[f'{n}gram_negative_count']=0
return defaults
def _compute_custom_sentiment(self, features: Dict[str, Any]) -> float:
score = features.get('vader_compound',0.0)*0.3 + features.get('textblob_polarity',0.0)*0.2 + ((features.get('sentiment_ratio',0.5)*2)-1)*0.25
dp, dn = features.get('domain_positive_count',0), features.get('domain_negative_count',0); dt = dp + dn
if dt > 0: score += ((dp-dn)/dt)*0.15
ng_sum, ng_types = 0.0, 0
for n in [2,3]:
ngp, ngn = features.get(f'{n}gram_positive_count',0), features.get(f'{n}gram_negative_count',0); ngt = ngp + ngn
if ngt > 0: ng_sum += (ngp-ngn)/ngt; ng_types += 1
if ng_types > 0: score += (ng_sum/ng_types)*0.1
return np.clip(score, -1.0, 1.0)
def batch_extract_features(self, raw_texts: List[str], preprocessed_texts_for_rules: List[str], categories: List[str] = None, batch_size: int = 1000) -> pd.DataFrame:
if not raw_texts or not preprocessed_texts_for_rules or len(raw_texts) != len(preprocessed_texts_for_rules): return pd.DataFrame()
if categories is None: categories = ['unknown'] * len(raw_texts)
elif len(categories) != len(raw_texts): categories = (list(categories) + ['unknown']*len(raw_texts))[:len(raw_texts)]
all_features = []; total = len(raw_texts)
global tqdm; p_bar_desc = "Extracting features (Batch)"; p_bar = tqdm(total=total, desc=p_bar_desc, unit="texts") if tqdm_available else None
if not p_bar: print(f"{p_bar_desc}: Starting for {total} texts...")
for i in range(0, total, batch_size):
b_raw, b_prep, b_cat = raw_texts[i:min(i+batch_size,total)], preprocessed_texts_for_rules[i:min(i+batch_size,total)], categories[i:min(i+batch_size,total)]
all_features.extend([self.extract_all_features(r,p,c) for r,p,c in zip(b_raw,b_prep,b_cat)])
if p_bar: p_bar.update(len(b_raw))
elif (i // batch_size) % max(1, (total // batch_size)//10) == 0 or i+batch_size >= total: print(f"{p_bar_desc}: {len(all_features)}/{total} processed...")
if p_bar: p_bar.close()
else: print(f"{p_bar_desc}: Completed for {len(all_features)} texts!")
return pd.DataFrame(all_features)
#%% === SENTIMENT MODELS (RULE-BASED + TRANSFORMERS) ===
class TransformerSentimentPredictor:
def __init__(self, model_name_or_path: str = "cardiffnlp/twitter-roberta-base-sentiment-latest", logger=None):
self.logger = logger or logging.getLogger(__name__); self.model_name = model_name_or_path; self.pipeline = None
if transformers_available:
try: self.pipeline = pipeline("sentiment-analysis", model=self.model_name, device=TRANSFORMER_DEVICE, return_all_scores=False); self.logger.info(f"Transformer sentiment model '{self.model_name}' loaded on {TRANSFORMER_DEVICE}.")
except Exception as e: self.logger.error(f"Failed to load Transformer model '{self.model_name}': {e}")
else: self.logger.warning("Transformers library not available. TransformerSentimentPredictor will not function.")
def predict(self, text: str) -> Optional[Dict[str, Any]]:
if not self.pipeline or not text or pd.isna(text): return None
try:
with warnings.catch_warnings(): warnings.simplefilter("ignore"); result = self.pipeline(text, truncation=True, max_length=512)
return result[0] if result and isinstance(result, list) else None
except Exception as e: self.logger.error(f"Error during Transformer prediction for '{text[:50]}...': {e}"); return None
def batch_predict(self, texts: List[str], batch_size: int = 32) -> List[Optional[Dict[str, Any]]]:
if not self.pipeline or not texts: return [None] * len(texts)
results = []; p_bar_desc = f"Transformer ({self.model_name.split('/')[-1]}) Batch Predict"; p_bar = tqdm(total=len(texts), desc=p_bar_desc, unit="texts") if tqdm_available and len(texts) > batch_size else None
for i in range(0, len(texts), batch_size):
batch_in = texts[i:min(i+batch_size, len(texts))]
try:
with warnings.catch_warnings(): warnings.simplefilter("ignore"); batch_out = self.pipeline(batch_in, truncation=True, max_length=512)
results.extend(batch_out)
except Exception as e: self.logger.error(f"Error Transformer batch prediction: {e}"); results.extend([None]*len(batch_in))
if p_bar: p_bar.update(len(batch_in))
if p_bar: p_bar.close()
final_results = []; res_idx = 0
for _ in texts: final_results.append(results[res_idx] if res_idx < len(results) and results[res_idx] is not None else None); res_idx +=1
return final_results
class SentimentModels:
"""Collection of sentiment analysis models for rating prediction."""
@staticmethod
def roberta_sentiment_to_stars(prediction_output: Optional[Dict[str, Any]]) -> int:
"""Convert RoBERTa sentiment model output to star ratings."""
if prediction_output is None or 'label' not in prediction_output:
return 3 # Default to neutral if no prediction
label = prediction_output['label'].lower()
if 'positive' in label: return 5
elif 'negative' in label: return 1
elif 'neutral' in label: return 3
elif label == "label_2" or label == "2": return 5
elif label == "label_0" or label == "0": return 1
elif label == "label_1" or label == "1": return 3
else: return 3
@staticmethod
def vader_to_stars(features: Dict[str, Any], thresholds: List[float] = None) -> int:
"""Convert VADER sentiment scores to star ratings using optimized thresholds."""
final_thresholds = thresholds if thresholds is not None else [-0.6, -0.2, 0.2, 0.7]
for star_val in [5, 4, 3, 2, 1]:
if features.get(f'mentions_{star_val}_star', False):
return star_val
compound = features.get('vader_compound', 0.0)
if compound <= final_thresholds[0]:
return 1
elif compound <= final_thresholds[1]:
return 2
elif compound < final_thresholds[2]:
return 3
elif compound < final_thresholds[3]:
return 4
else:
return 5
@staticmethod
def textblob_to_stars(features: Dict[str, Any], thresholds: List[float] = None) -> int:
"""Convert TextBlob sentiment scores to star ratings."""
final_thresholds = thresholds if thresholds is not None else [-0.5, -0.1, 0.3, 0.6]
for star_val in [5, 4, 3, 2, 1]:
if features.get(f'mentions_{star_val}_star', False):
return star_val
polarity = features.get('textblob_polarity', 0.0)
if polarity <= final_thresholds[0]:
return 1
elif polarity <= final_thresholds[1]:
return 2
elif polarity < final_thresholds[2]:
return 3
elif polarity < final_thresholds[3]:
return 4
else:
return 5
@staticmethod
def feature_based_to_stars(features: Dict[str, Any]) -> int:
"""Heuristic feature-based model using multiple feature types."""
for star_val in [5, 4, 3, 2, 1]:
if features.get(f'mentions_{star_val}_star', False):
return star_val
score = 0.0
score += features.get('vader_compound', 0.0) * 1.5
score += features.get('textblob_polarity', 0.0) * 0.5
score += (features.get('positive_word_count', 0) - features.get('negative_word_count', 0)) * 0.2
score += (features.get('domain_positive_count', 0) - features.get('domain_negative_count', 0)) * 0.3
if score <= -1.0:
return 1
elif score <= -0.25:
return 2
elif score < 0.35:
return 3
elif score < 1.1:
return 4
else:
return 5
@staticmethod
def multidimensional_to_stars(features: Dict[str, Any]) -> int:
"""Advanced multidimensional sentiment analysis model (Valence-Arousal-Dominance inspired)."""
for star_val in [5, 4, 3, 2, 1]:
if features.get(f'mentions_{star_val}_star', False):
return star_val
valence_score = (features.get('vader_positive', 0.0) - features.get('vader_negative', 0.0) +
features.get('textblob_polarity', 0.0) * 0.8 +
(features.get('sentiment_ratio', 0.5) - 0.5) * 2)
arousal_score = (features.get('intensifier_count', 0) * 0.1 +
features.get('exclamation_count', 0) * 0.05 +
features.get('caps_ratio', 0.0) * 2.0 +
(1 - features.get('vader_neutral', 1.0)))
dominance_score = ((1 - features.get('textblob_subjectivity', 0.5)) * 2.0 -
features.get('question_count', 0) * 0.1 +
min(features.get('word_count', 0) / 50.0, 1.0))
context_score = 0.0
domain_pos = features.get('domain_positive_count', 0)
domain_neg = features.get('domain_negative_count', 0)
if (domain_pos + domain_neg) > 0:
context_score = ((domain_pos - domain_neg) / (domain_pos + domain_neg))
linguistic_score = 0.0
if features.get('word_count', 0) > 0:
linguistic_score += (min(features.get('avg_word_length', 0) / 6.0, 1.0) -
features.get('negation_count', 0) * 0.1)
final_score = (valence_score * 0.40 + arousal_score * 0.20 + dominance_score * 0.15 +
context_score * 0.15 + linguistic_score * 0.10)
if final_score <= -0.8:
return 1
elif final_score <= -0.3:
return 2
elif final_score < 0.4:
return 3
elif final_score < 0.9:
return 4
else:
return 5
@staticmethod
def rule_based_enhanced_to_stars(features: Dict[str, Any]) -> int:
"""Enhanced rule-based model with sophisticated decision trees."""
for star_val in [5, 4, 3, 2, 1]:
if features.get(f'mentions_{star_val}_star', False):
return star_val
strong_negative = (features.get('negative_word_count', 0) >= 3 or
features.get('vader_negative', 0.0) > 0.5 or
features.get('textblob_polarity', 0.0) < -0.4)
strong_positive = (features.get('positive_word_count', 0) >= 3 or
features.get('vader_positive', 0.0) > 0.6 or
features.get('textblob_polarity', 0.0) > 0.5)
has_negation = features.get('negation_count', 0) > 0
high_intensity = (features.get('intensifier_count', 0) > 1 or
features.get('exclamation_count', 0) > 1 or
features.get('caps_ratio', 0.0) > 0.1)
domain_sentiment_score = 0.0
domain_pos = features.get('domain_positive_count', 0)
domain_neg = features.get('domain_negative_count', 0)
if (domain_pos + domain_neg) > 0:
domain_sentiment_score = (domain_pos - domain_neg) / (domain_pos + domain_neg)
if strong_negative and not has_negation:
return 1 if high_intensity else 2
if strong_positive and not has_negation:
return 5 if high_intensity or domain_sentiment_score > 0.3 else 4
if has_negation:
if strong_positive: return 2
if strong_negative: return 3
adjusted_score = features.get('vader_compound', 0.0) + domain_sentiment_score * 0.3
if adjusted_score <= -0.5:
return 1
elif adjusted_score <= -0.1:
return 2
elif adjusted_score < 0.3:
return 3
elif adjusted_score < 0.7:
return 4
else:
return 5
@staticmethod
def hybrid_weighted_to_stars(features: Dict[str, Any]) -> int:
"""Hybrid model combining statistical and rule-based approaches."""
for star_val in [5, 4, 3, 2, 1]:
if features.get(f'mentions_{star_val}_star', False):
return star_val
weights_conf = {
'vader': min(abs(features.get('vader_compound', 0.0)) * 2.0, 1.0),
'textblob': min(abs(features.get('textblob_polarity', 0.0)) * 1.5, 1.0),
'lexicon': min((features.get('positive_word_count', 0) + features.get('negative_word_count', 0)) / 5.0, 1.0),
'domain': min((features.get('domain_positive_count', 0) + features.get('domain_negative_count', 0)) / 3.0, 1.0)
}
length_confidence = min(features.get('word_count', 0) / 100.0, 1.0)
predictions_with_weights = []
if weights_conf['vader'] > 0.1:
predictions_with_weights.append((SentimentModels.vader_to_stars(features), weights_conf['vader']))
if weights_conf['textblob'] > 0.1:
predictions_with_weights.append((SentimentModels.textblob_to_stars(features), weights_conf['textblob']))
feature_model_conf = (weights_conf.get('lexicon',0.0) + weights_conf.get('domain',0.0) + length_confidence) / 3.0
predictions_with_weights.append((SentimentModels.feature_based_to_stars(features), 0.5 + feature_model_conf * 0.5))
predictions_with_weights.append((SentimentModels.rule_based_enhanced_to_stars(features), length_confidence * 0.8))
if predictions_with_weights:
valid_weighted_preds = [(p, w) for p, w in predictions_with_weights if w > 0]
if not valid_weighted_preds: return 3
total_weight = sum(w for _, w in valid_weighted_preds)
if total_weight > 0:
weighted_sum = sum(p * w for p, w in valid_weighted_preds)
final_pred_float = weighted_sum / total_weight
return max(1, min(5, round(final_pred_float)))
return 3
@staticmethod
def lexicon_ensemble_to_stars(features: Dict[str, Any]) -> int:
"""Ensemble of multiple lexicon-based approaches."""
for star_val in [5, 4, 3, 2, 1]:
if features.get(f'mentions_{star_val}_star', False):
return star_val
scores = []
sentiment_ratio_val = features.get('sentiment_ratio', 0.5)
scores.append(sentiment_ratio_val * 4.0 + 1.0)
pos_words = features.get('positive_word_count', 0)
neg_words = features.get('negative_word_count', 0)
intensifier_count = features.get('intensifier_count', 0)
adj_pos = pos_words * (1 + intensifier_count * 0.2)
adj_neg = neg_words * (1 + intensifier_count * 0.2)
if (adj_pos + adj_neg) > 0:
scores.append((adj_pos / (adj_pos + adj_neg)) * 4.0 + 1.0)
domain_pos_words = features.get('domain_positive_count', 0)
domain_neg_words = features.get('domain_negative_count', 0)
if (domain_pos_words + domain_neg_words) > 0:
scores.append((domain_pos_words / (domain_pos_words + domain_neg_words)) * 4.0 + 1.0)
negation_count = features.get('negation_count', 0)
base_diff = pos_words - neg_words
if negation_count > 0 and base_diff != 0:
base_diff = -base_diff
scores.append((np.tanh(base_diff * 0.2) + 1.0) * 2.0 + 1.0)
return max(1, min(5, round(np.mean(scores)))) if scores else 3
@staticmethod
def ngram_enhanced_to_stars(features: Dict[str, Any]) -> int:
"""N-gram enhanced sentiment analysis model."""
for star_val in [5, 4, 3, 2, 1]:
if features.get(f'mentions_{star_val}_star', False):
return star_val
base_score = features.get('vader_compound', 0.0) * 0.5 + \
features.get('textblob_polarity', 0.0) * 0.3
ngram_sentiment_contribution = 0.0
total_ngram_weight = 0
for n, weight_multiplier in zip([2, 3], [0.5, 0.5]): # Use 2,3-grams as per feature extraction
ngram_pos = features.get(f'{n}gram_positive_count', 0)
ngram_neg = features.get(f'{n}gram_negative_count', 0)
if ngram_pos + ngram_neg > 0:
ngram_type_sentiment = (ngram_pos - ngram_neg) / (ngram_pos + ngram_neg)
ngram_sentiment_contribution += ngram_type_sentiment * weight_multiplier
total_ngram_weight += weight_multiplier
if total_ngram_weight > 0:
normalized_ngram_score = ngram_sentiment_contribution / total_ngram_weight
final_score = base_score * 0.7 + normalized_ngram_score * 0.3
else:
final_score = base_score
if final_score <= -0.6:
return 1
elif final_score <= -0.2:
return 2
elif final_score < 0.2:
return 3
elif final_score < 0.6:
return 4
else:
return 5
@staticmethod
def advanced_ensemble_prediction(predictions: Dict[str, int], features: Dict[str, Any] = None,
weights: Dict[str, float] = None) -> int:
"""Advanced ensemble model with adaptive weighting and outlier detection."""
if weights is None:
weights = {
'vader': 0.15, 'textblob': 0.10, 'feature_based': 0.15,
'multidimensional': 0.10, 'rule_based_enhanced': 0.08,
'hybrid_weighted': 0.08, 'lexicon_ensemble': 0.07,
'ngram_enhanced': 0.07,
'roberta_sentiment': 0.20
}
valid_preds = {k: v for k, v in predictions.items()
if pd.notna(v) and k in weights and 1 <= v <= 5}
if not valid_preds: return 3
pred_values = list(valid_preds.values())
if len(pred_values) >= 3:
median_pred = np.median(pred_values)
std_pred = np.std(pred_values)
if std_pred > 0.5:
filtered_preds_temp = {k: v for k, v in valid_preds.items()
if abs(v - median_pred) <= max(1, 1.5 * std_pred)}
if len(filtered_preds_temp) >= max(1, len(valid_preds) * 0.5):
valid_preds = filtered_preds_temp
adapted_weights = {k: weights[k] for k in valid_preds if k in weights}
if features:
if 'vader' in adapted_weights and \
(features.get('caps_ratio', 0.0) > 0.05 or features.get('exclamation_count', 0) > 0):
adapted_weights['vader'] *= 1.2
domain_words_count = features.get('domain_positive_count', 0) + features.get('domain_negative_count', 0)
if domain_words_count > 2:
for m_key in ['multidimensional', 'rule_based_enhanced']:
if m_key in adapted_weights: adapted_weights[m_key] *= 1.1
if 'roberta_sentiment' in adapted_weights and features.get('word_count',0) > 20 and features.get('sentence_count',0) > 1:
adapted_weights['roberta_sentiment'] *= 1.2
total_initial_weight = sum(adapted_weights.values())
if total_initial_weight > 0:
adapted_weights = {k: v / total_initial_weight for k, v in adapted_weights.items()}
else:
adapted_weights = {k: 1.0/len(valid_preds) for k in valid_preds}
weighted_sum_final, total_weight_final = 0.0, 0.0
for model_key, pred_val in valid_preds.items():
if model_key in adapted_weights:
weight_val = adapted_weights[model_key]
weighted_sum_final += pred_val * weight_val
total_weight_final += weight_val
if total_weight_final == 0:
return round(np.mean(list(valid_preds.values()))) if valid_preds else 3
final_pred_float = weighted_sum_final / total_weight_final
if len(valid_preds) >= 2:
pred_std_dev_after_filter = np.std(list(valid_preds.values()))
if pred_std_dev_after_filter > 1.0:
final_pred_float = (final_pred_float * 0.7) + (np.median(list(valid_preds.values())) * 0.3)
return max(1, min(5, round(final_pred_float)))
#%% === ASPECT-BASED SENTIMENT ANALYSIS ===
class AspectBasedSentimentAnalyzer:
def __init__(self, results_dir: str, logger: Optional[logging.Logger] = None):
self.results_dir = results_dir
self.absa_results_dir = os.path.join(results_dir, 'absa_analysis')
os.makedirs(self.absa_results_dir, exist_ok=True)
self.logger = logger or logging.getLogger(__name__)
self.absa_pipeline = None
self.use_rule_based_absa_fallback = False # Flag for fallback
# Try to initialize NLTK sentence tokenizer first, as it's needed by both methods
self.sent_tokenizer_nltk = None
if NLTK_INITIALIZED:
try:
from nltk.tokenize import sent_tokenize
self.sent_tokenizer_nltk = sent_tokenize
self.logger.info("NLTK sent_tokenize loaded for ABSA.")
except ImportError:
self.logger.warning("NLTK sent_tokenize not available. ABSA might be impaired.")
else:
self.logger.warning("NLTK not initialized. NLTK sent_tokenize not available for ABSA.")
if transformers_available:
try:
model_name = "yangheng/deberta-v3-base-absa-v1.1"
self.absa_pipeline = pipeline("text-classification", model=model_name, tokenizer=model_name, device=TRANSFORMER_DEVICE, return_all_scores=False)
self.logger.info(f"ABSA Transformer model '{model_name}' loaded on {TRANSFORMER_DEVICE}.")
except Exception as e:
self.logger.error(f"Failed to load ABSA Transformer model: {e}. Will attempt rule-based ABSA fallback.")
self.use_rule_based_absa_fallback = True
else:
self.logger.warning("Transformers library not available. Will attempt rule-based ABSA fallback.")
self.use_rule_based_absa_fallback = True
if self.use_rule_based_absa_fallback:
if not textproc_available:
self.logger.error("TextBlob not available, cannot use rule-based ABSA fallback. ABSA will be skipped if Transformer also failed.")
else:
self.logger.info("Rule-based ABSA (with TextBlob) will be used as a fallback if needed.")
def get_aspect_keywords_for_category(self, category: str) -> Set[str]:
"""FIXED: Get category-specific aspects without mixing electronics terms into other categories"""
aspects = set()
# Add category-specific domain words (positive + negative)
if category != 'unknown' and category in DOMAIN_WORDS:
aspects.update(DOMAIN_WORDS[category].get('positive', set()) | DOMAIN_WORDS[category].get('negative', set()))
# Add generic specs that apply to all product categories
aspects.update(PRODUCT_SPEC_WORDS.get('generic_specs', set()))
# Add category-specific specs only for the matching category
category_spec_key = f"{category}_specs"
if category_spec_key in PRODUCT_SPEC_WORDS:
aspects.update(PRODUCT_SPEC_WORDS[category_spec_key])
# Filter out very short words that might cause false matches
return {asp for asp in aspects if len(asp) > 2}
def analyze_review(self, review_text: str, category: str = 'unknown') -> List[Dict[str, Any]]:
if not review_text or pd.isna(review_text): return []
if not self.sent_tokenizer_nltk:
self.logger.warning("NLTK Sentence tokenizer not available. Cannot perform ABSA for this review.")
return []
aspect_sentiments = []
try:
sentences = self.sent_tokenizer_nltk(review_text)
except Exception as e:
self.logger.error(f"Error tokenizing sentences for review: '{review_text[:50]}...': {e}")
return []
candidate_aspects = self.get_aspect_keywords_for_category(category)
if not candidate_aspects: return []
current_method_is_transformer = self.absa_pipeline and not self.use_rule_based_absa_fallback
current_method_is_rule_based = self.use_rule_based_absa_fallback and textproc_available
if current_method_is_transformer:
cleaned_sentences_for_transformer = [re.sub(r'\s+', ' ', s.lower().strip()) for s in sentences]
for sent_idx, sentence in enumerate(cleaned_sentences_for_transformer):
if not sentence: continue
mentioned_aspects = {asp for asp in candidate_aspects if re.search(r'\b'+re.escape(asp)+r'\b', sentence)}
if not mentioned_aspects: continue
for aspect_term in mentioned_aspects:
input_text = f"{sentence} [SEP] {aspect_term}"
try:
with warnings.catch_warnings(): warnings.simplefilter("ignore"); result = self.absa_pipeline(input_text, truncation=True, max_length=512)
if result and isinstance(result,list) and result[0]:
aspect_sentiments.append({
'aspect':aspect_term, 'sentiment':result[0]['label'].lower(),
'score':float(result[0]['score']), 'context':sentences[sent_idx].strip(),
'method': 'transformer_deberta'})
except Exception as e: self.logger.error(f"Error ABSA Transformer pred for '{aspect_term}' in '{sentence[:50]}...': {e}")
elif current_method_is_rule_based:
for sent_idx, sentence_text in enumerate(sentences):
cleaned_sentence = re.sub(r'\s+', ' ', sentence_text.lower().strip())
if not cleaned_sentence: continue
mentioned_aspects = {asp for asp in candidate_aspects if re.search(r'\b' + re.escape(asp) + r'\b', cleaned_sentence)}
if not mentioned_aspects: continue
try:
blob = TextBlob(sentence_text)
polarity = blob.sentiment.polarity
sentiment_label = "positive" if polarity > 0.1 else "negative" if polarity < -0.1 else "neutral"
for aspect_term in mentioned_aspects:
aspect_sentiments.append({
'aspect': aspect_term, 'sentiment': sentiment_label,
'score': abs(polarity), 'context': sentences[sent_idx].strip(),
'method': 'rule-based_textblob'
})
except Exception as e:
self.logger.error(f"Error during rule-based ABSA for sentence '{sentence_text[:50]}...': {e}")
return aspect_sentiments
def batch_analyze_reviews(self, reviews: List[str], categories: List[str], batch_size: int = 10) -> List[List[Dict[str, Any]]]:
can_do_transformer_absa = self.absa_pipeline and not self.use_rule_based_absa_fallback
can_do_rule_based_absa = self.use_rule_based_absa_fallback and textproc_available and self.sent_tokenizer_nltk
if not (can_do_transformer_absa or can_do_rule_based_absa):
self.logger.warning("No viable ABSA method (Transformer or rule-based fallback). Skipping batch ABSA.")
return [[] for _ in reviews]
all_results = []; p_bar_desc = "ABSA Batch Processing"; p_bar = tqdm(total=len(reviews), desc=p_bar_desc, unit="reviews") if tqdm_available and len(reviews) > batch_size else None
for i in range(0, len(reviews), batch_size):
batch_rev, batch_cat = reviews[i:min(i+batch_size,len(reviews))], categories[i:min(i+batch_size,len(reviews))]
for rev_txt, cat in zip(batch_rev, batch_cat):
all_results.append(self.analyze_review(rev_txt, cat))
if p_bar: p_bar.update(len(batch_rev))
if p_bar: p_bar.close()
return all_results
def generate_absa_summary_visualizations(self, all_aspect_data: List[List[Dict[str, Any]]], categories: Optional[List[str]] = None) -> None:
if not all_aspect_data or not matplotlib_available: self.logger.warning("No ABSA data or matplotlib for visualization."); return
flat_aspect_list = [item for sublist in all_aspect_data for item in sublist]
if not flat_aspect_list: self.logger.info("No aspects extracted for ABSA summary."); return
df_aspects = pd.DataFrame(flat_aspect_list)
if not df_aspects.empty:
self._plot_aspect_sentiment_distribution(df_aspects, "Overall", "overall_aspect_sentiments.png")
if categories and len(categories) == len(all_aspect_data):
review_indices = [i for i, sublist in enumerate(all_aspect_data) for _ in sublist]
if review_indices:
df_aspects['review_category'] = [categories[i] for i in review_indices]
top_n_cats = df_aspects['review_category'].value_counts().nlargest(5).index
for cat in top_n_cats:
if cat == 'unknown': continue
df_cat_aspects = df_aspects[df_aspects['review_category']==cat]
if not df_cat_aspects.empty: self._plot_aspect_sentiment_distribution(df_cat_aspects, f"Category: {cat.title()}", f"category_{cat}_aspect_sentiments.png")
summary_path = os.path.join(self.absa_results_dir, "absa_summary_data.csv")
try: df_aspects.to_csv(summary_path, index=False); self.logger.info(f"Aggregated ABSA data saved to {summary_path}")
except Exception as e: self.logger.error(f"Failed to save aggregated ABSA data: {e}")
self.logger.info("ABSA summary visualizations generated.")
def _plot_aspect_sentiment_distribution(self, df_aspects: pd.DataFrame, title_prefix: str, filename: str):
if df_aspects.empty: return
top_aspects = df_aspects['aspect'].value_counts().nlargest(15).index
df_top_aspects = df_aspects[df_aspects['aspect'].isin(top_aspects)]
if df_top_aspects.empty: return
aspect_sentiment_counts = df_top_aspects.groupby(['aspect', 'sentiment']).size().unstack(fill_value=0)
for col in ['positive','negative','neutral']:
if col not in aspect_sentiment_counts.columns: aspect_sentiment_counts[col]=0
cols_in_order = [c for c in ['positive','neutral','negative'] if c in aspect_sentiment_counts.columns]
aspect_sentiment_counts = aspect_sentiment_counts[cols_in_order]
fig, ax = plt.subplots(figsize=(12, max(8, len(top_aspects)*0.5)))
try:
aspect_sentiment_counts.plot(kind='barh', stacked=True, color={'positive':'mediumseagreen','neutral':'lightskyblue','negative':'lightcoral'}, ax=ax)
ax.set_title(f'{title_prefix} - Top Aspect Sentiment Distribution', fontsize=15); ax.set_xlabel('Number of Mentions',fontsize=12); ax.set_ylabel('Aspect Term',fontsize=12)
ax.legend(title='Sentiment',loc='lower right'); ax.invert_yaxis(); plt.tight_layout()
save_path = os.path.join(self.absa_results_dir, filename); plt.savefig(save_path, dpi=300)
if is_jupyter_environment(): plt.show()
self.logger.info(f"Saved ABSA plot: {save_path}")
except Exception as e: self.logger.error(f"Error plotting ABSA for {title_prefix}: {e}")
finally: plt.close(fig)
#%% === WORST PREDICTION ANALYZER ===
class WorstPredictionAnalyzer:
"""Analyzes worst predictions, outputs static DataFrames, and lists full review texts."""
def __init__(self, results_dir: str, logger: Optional[logging.Logger] = None):
self.results_dir = results_dir
os.makedirs(self.results_dir, exist_ok=True)
self.worst_predictions_data: Dict[str, List[Dict[str, Any]]] = {}
self.pipeline_ref = None
self.logger = logger or logging.getLogger(__name__)
def save_worst_predictions_to_csv(self, model_name: str) -> None:
if model_name not in self.worst_predictions_data or not self.worst_predictions_data[model_name]: return
df_worst = pd.DataFrame(self.worst_predictions_data[model_name])
cols_to_save = ['original_data_index','true_rating','predicted_rating','error','text_preview','vader_compound','textblob_polarity','custom_score','word_count','transformer_label','transformer_score']
# Adjust 'original_data_index' to 'index' if that's the actual key in current_model_worst_data
if 'index' in df_worst.columns and 'original_data_index' not in df_worst.columns:
cols_to_save[0] = 'index' # Use 'index' if 'original_data_index' is missing
df_worst_filt = df_worst[[col for col in cols_to_save if col in df_worst.columns]]
safe_name = model_name.lower().replace(' ','_').replace('-','_')
filename = os.path.join(self.results_dir, f"{safe_name}_worst_predictions.csv")
try: df_worst_filt.to_csv(filename, index=False, encoding='utf-8'); self.logger.info(f"Worst predictions CSV for {model_name} saved to {filename}")
except Exception as e: self.logger.error(f"Error saving worst predictions CSV for {model_name}: {e}")
def plot_worst_prediction_visuals(self, worst_preds_df: pd.DataFrame, model_name: str):
self.logger.info(f"Visualizations for worst predictions for model '{model_name}' are now replaced by direct listing of full reviews.")
pass # Visualizations are intentionally not generated as per Request 1
def analyze_and_display_worst_predictions(self, model_name_single: str,
y_true_model: np.ndarray,
y_pred_model: np.ndarray,
original_texts_for_model: List[str],
features_df_for_model: pd.DataFrame,
valid_indices_mask_for_model: Optional[np.ndarray] = None, # Not directly used if data is pre-filtered
transformer_predictions_df_for_model: Optional[pd.DataFrame] = None,
top_n: int = 50, # FIXED: Changed from 100 to 50
min_error_threshold: int = 1
) -> None:
if len(y_true_model) == 0:
self.logger.warning(f"\nNo valid predictions to analyze for worst cases in {model_name_single}.")
return
errors = np.abs(y_true_model - y_pred_model)
current_model_worst_data = []
# These indices are relative to the y_true_model, y_pred_model, etc. passed to this function
# which are already filtered by valid_mask in ModelEvaluator.evaluate_model
sorted_indices_relative_to_current_arrays = np.argsort(errors)[::-1]
for i_worst in range(min(top_n, len(sorted_indices_relative_to_current_arrays))):
idx_in_current_arrays = sorted_indices_relative_to_current_arrays[i_worst]
if errors[idx_in_current_arrays] < min_error_threshold:
break
text_to_use = original_texts_for_model[idx_in_current_arrays] if idx_in_current_arrays < len(original_texts_for_model) else "N/A Text"
# 'index' here will be the index within the *current filtered arrays*
item_data = {
'index': idx_in_current_arrays,
'true_rating': int(y_true_model[idx_in_current_arrays]),
'predicted_rating': int(y_pred_model[idx_in_current_arrays]),
'error': int(errors[idx_in_current_arrays]),
'text_preview': text_to_use,
}
if not features_df_for_model.empty and idx_in_current_arrays < len(features_df_for_model):
features_row = features_df_for_model.iloc[idx_in_current_arrays]
item_data.update({
'vader_compound': f"{features_row.get('vader_compound', 'N/A'):.3f}" if isinstance(features_row.get('vader_compound'), (float, np.floating)) else features_row.get('vader_compound', 'N/A'),
'textblob_polarity': f"{features_row.get('textblob_polarity', 'N/A'):.3f}" if isinstance(features_row.get('textblob_polarity'), (float, np.floating)) else features_row.get('textblob_polarity', 'N/A'),
'custom_score': f"{features_row.get('custom_sentiment_score', 'N/A'):.3f}" if isinstance(features_row.get('custom_sentiment_score'), (float, np.floating)) else features_row.get('custom_sentiment_score', 'N/A'),
'word_count': features_row.get('word_count', 'N/A')
})
if "RoBERTa Sentiment" in model_name_single and \
transformer_predictions_df_for_model is not None and \
idx_in_current_arrays < len(transformer_predictions_df_for_model):
transformer_row = transformer_predictions_df_for_model.iloc[idx_in_current_arrays]
item_data['transformer_label'] = transformer_row.get('roberta_sentiment_raw_label', 'N/A')
item_data['transformer_score'] = f"{transformer_row.get('roberta_sentiment_raw_score', 'N/A'):.3f}" if isinstance(transformer_row.get('roberta_sentiment_raw_score'), (float, np.floating)) else transformer_row.get('roberta_sentiment_raw_score', 'N/A')
current_model_worst_data.append(item_data)
self.worst_predictions_data[model_name_single] = current_model_worst_data
self.save_worst_predictions_to_csv(model_name_single) # CSV saving is preserved
if not current_model_worst_data:
self.logger.info(f"\nNo predictions found with error >= {min_error_threshold} for {model_name_single}.")
return
# USER REQUEST 1 (MODIFIED): Display as Pandas DataFrame table
print(f"\n--- Top {len(current_model_worst_data)} Worst Predictions for Model: {model_name_single} (Error >= {min_error_threshold}) ---")
df_full_worst_predictions = pd.DataFrame(current_model_worst_data)
# Define column order for display
cols_order_display = ['index', 'true_rating', 'predicted_rating', 'error',
'vader_compound', 'textblob_polarity', 'custom_score', 'word_count']
if 'transformer_label' in df_full_worst_predictions.columns:
cols_order_display.extend(['transformer_label', 'transformer_score'])
cols_order_display.append('text_preview') # Full text at the end for readability
# Ensure only existing columns are selected and in the desired order
df_full_worst_predictions_display = df_full_worst_predictions[[col for col in cols_order_display if col in df_full_worst_predictions.columns]]
with pd.option_context('display.max_colwidth', None, 'display.width', 1000): # Allow full text display
safe_display(df_full_worst_predictions_display)
print(f"--- End of Worst Predictions Table for {model_name_single} ---")
# Visualizations are no longer generated here
# self.plot_worst_prediction_visuals(pd.DataFrame(current_model_worst_data), model_name_single)
#%% === ENHANCED MODEL EVALUATOR ===
class ModelEvaluator:
def __init__(self, results_dir: Optional[str] = None, logger: Optional[logging.Logger] = None, pipeline_instance: Optional[Any] = None):
self.results_dir = results_dir or '.'; self.logger = logger or logging.getLogger(__name__)
self.pipeline = pipeline_instance
self.worst_prediction_analyzer = WorstPredictionAnalyzer(os.path.join(self.results_dir, "worst_predictions_analysis"), self.logger)
if self.pipeline:
self.worst_prediction_analyzer.pipeline_ref = self.pipeline
def calculate_metrics(self, y_true: List[int], y_pred: List[int]) -> Dict[str, float]:
if not y_true or not y_pred: return {}
y_true_arr, y_pred_arr = np.array(y_true), np.array(y_pred)
valid_mask = ~np.isnan(y_pred_arr) & ~np.isinf(y_pred_arr)
if not np.any(valid_mask): return {}
y_true_filt, y_pred_filt = y_true_arr[valid_mask], y_pred_arr[valid_mask]
try: y_pred_clamped = np.clip(y_pred_filt.astype(int),1,5)
except ValueError: self.logger.warning("Could not cast preds to int for clamping."); y_pred_clamped = np.clip(pd.to_numeric(y_pred_filt,errors='coerce').fillna(3).astype(int),1,5)
if len(y_true_filt)==0: return {}
accuracy = np.mean(y_true_filt==y_pred_clamped); close_accuracy = np.mean(np.abs(y_true_filt-y_pred_clamped)<=1)
mae = mean_absolute_error(y_true_filt,y_pred_clamped); rmse = np.sqrt(mean_squared_error(y_true_filt,y_pred_clamped))
unique_labels = sorted(np.unique(np.concatenate((y_true_filt,y_pred_clamped)))); unique_labels = unique_labels or [1,2,3,4,5]
f1_macro = f1_score(y_true_filt,y_pred_clamped,average='macro',zero_division=0,labels=unique_labels)
f1_weighted = f1_score(y_true_filt,y_pred_clamped,average='weighted',zero_division=0,labels=unique_labels)
precision_macro = precision_score(y_true_filt,y_pred_clamped,average='macro',zero_division=0,labels=unique_labels)
recall_macro = recall_score(y_true_filt,y_pred_clamped,average='macro',zero_division=0,labels=unique_labels)
kappa = cohen_kappa_score(y_true_filt,y_pred_clamped,weights=None)
f1_close = f1_score(np.ones_like(y_true_filt),(np.abs(y_true_filt-y_pred_clamped)<=1).astype(int),zero_division=0,pos_label=1)
return {'accuracy':accuracy,'close_accuracy':close_accuracy,'mae':mae,'rmse':rmse,'f1_macro':f1_macro,'f1_weighted':f1_weighted,'f1_close':f1_close,'precision_macro':precision_macro,'recall_macro':recall_macro,'kappa':kappa,'sample_size':len(y_true_filt)}
def plot_confusion_matrix(self, y_true: List[int], y_pred: List[int], model_name: str, metrics: Dict[str, float]) -> None:
if not matplotlib_available: self.logger.warning(f"Matplotlib unavailable for CM: {model_name}"); return
y_true_arr, y_pred_arr = np.array(y_true), np.array(y_pred)
valid_mask = ~np.isnan(y_pred_arr)&~np.isinf(y_pred_arr)
if not np.any(valid_mask): self.logger.warning(f"No valid preds for CM: {model_name}"); return
y_true_filt,y_pred_filt = y_true_arr[valid_mask], y_pred_arr[valid_mask]
try: y_pred_clamped = np.clip(y_pred_filt.astype(int),1,5)
except ValueError: y_pred_clamped = np.clip(pd.to_numeric(y_pred_filt,errors='coerce').fillna(3).astype(int),1,5)
if len(y_true_filt)==0: self.logger.warning(f"Zero valid preds for CM: {model_name}"); return
labels_cm=[1,2,3,4,5]; cm_vals = confusion_matrix(y_true_filt,y_pred_clamped,labels=labels_cm)
cm_norm = cm_vals.astype('float')/np.maximum(1,cm_vals.sum(axis=1,keepdims=True))
annot_txt = np.empty_like(cm_vals,dtype=object)
for i in range(cm_vals.shape[0]):
for j in range(cm_vals.shape[1]): annot_txt[i,j] = f"{cm_vals[i,j]}\n({cm_norm[i,j]*100:.1f}%)"
fig_cm=None
try:
fig_cm,ax_cm = plt.subplots(figsize=(12,10))
sns.heatmap(cm_vals,annot=annot_txt,fmt="",cmap='Blues',xticklabels=[f'{i}S' for i in labels_cm],yticklabels=[f'{i}S' for i in labels_cm],cbar_kws={'label':'# Reviews'},linewidths=0.5,linecolor='gray',ax=ax_cm)
for i_cm in range(len(labels_cm)):
ax_cm.add_patch(plt.Rectangle((i_cm,i_cm),1,1,fill=False,edgecolor='green',lw=3))
if i_cm>0: ax_cm.add_patch(plt.Rectangle((i_cm-1,i_cm),1,1,fill=False,edgecolor='orange',lw=2,ls='--'))
if i_cm<len(labels_cm)-1: ax_cm.add_patch(plt.Rectangle((i_cm+1,i_cm),1,1,fill=False,edgecolor='orange',lw=2,ls='--'))
from matplotlib.lines import Line2D
legend_elements = [Line2D([0],[0],color='green',lw=3,label='Correct Prediction'), Line2D([0],[0],color='orange',lw=2,linestyle='--',label='+/-1 Star Error')]
ax_cm.legend(handles=legend_elements,loc='upper left',bbox_to_anchor=(1.02,1))
title = f'{model_name} - Confusion Matrix\nAcc: {metrics.get("accuracy",0.0)*100:.1f}% | +/-1 Acc: {metrics.get("close_accuracy",0.0)*100:.1f}% | MAE: {metrics.get("mae",0.0):.3f}'
ax_cm.set_title(title,fontsize=14,fontweight='bold',pad=20); ax_cm.set_xlabel('Predicted Rating',fontsize=12); ax_cm.set_ylabel('True Rating',fontsize=12)
plt.tight_layout()
if self.results_dir: plt.savefig(os.path.join(self.results_dir,f"{model_name.lower().replace(' ','_').replace('-','_')}_confusion_matrix.png"),dpi=300,bbox_inches='tight')
if is_jupyter_environment(): plt.show()
except Exception as e_plot: self.logger.error(f"Error plotting CM for {model_name}: {e_plot}",exc_info=True); print(f" Error plotting CM for {model_name}: {e_plot}")
finally:
if fig_cm: plt.close(fig_cm)
def plot_rating_distribution(self, y_true: List[int], y_pred: List[int], model_name: str, metrics: Dict[str, float]) -> None:
if not matplotlib_available: self.logger.warning(f"Matplotlib unavailable for rating dist: {model_name}"); return
y_true_arr, y_pred_arr = np.array(y_true), np.array(y_pred)
valid_mask = ~np.isnan(y_pred_arr)&~np.isinf(y_pred_arr)
if not np.any(valid_mask): self.logger.warning(f"No valid preds for rating dist plot: {model_name}"); return
y_true_filt,y_pred_filt = y_true_arr[valid_mask], y_pred_arr[valid_mask]
try: y_pred_clamped = np.clip(y_pred_filt.astype(int),1,5)
except ValueError: y_pred_clamped = np.clip(pd.to_numeric(y_pred_filt,errors='coerce').fillna(3).astype(int),1,5)
if len(y_true_filt)==0: self.logger.warning(f"Zero valid preds for rating dist plot: {model_name}"); return
rating_levels=list(range(1,6)); true_counts=pd.Series(y_true_filt).value_counts().reindex(rating_levels,fill_value=0); pred_counts=pd.Series(y_pred_clamped).value_counts().reindex(rating_levels,fill_value=0)
fig_dist=None
try:
fig_dist,ax_dist = plt.subplots(figsize=(12,7)); x_indices=np.arange(len(rating_levels)); bar_width=0.35
rects1 = ax_dist.bar(x_indices-bar_width/2,true_counts.values,bar_width,label='True Ratings',color='deepskyblue',edgecolor='navy')
rects2 = ax_dist.bar(x_indices+bar_width/2,pred_counts.values,bar_width,label=f'{model_name} Predictions',color='lightcoral',edgecolor='darkred')
max_count_val = 1
if not true_counts.empty or not pred_counts.empty:
max_count_val = max(true_counts.max() if not true_counts.empty else 0,
pred_counts.max() if not pred_counts.empty else 0, 1)
for rg in [rects1,rects2]:
for rect in rg:
h=rect.get_height()
if h>0: ax_dist.text(rect.get_x()+rect.get_width()/2.,h+max_count_val*0.01,f'{int(h)}',ha='center',va='bottom',fontsize=9)
ax_dist.set_xlabel('Star Rating',fontsize=12); ax_dist.set_ylabel('Number of Reviews',fontsize=12)
title = f'{model_name} - Rating Distribution Comparison\n(Sample Size: {metrics.get("sample_size",0):,})'
ax_dist.set_title(title,fontsize=14,fontweight='bold',pad=15); ax_dist.set_xticks(x_indices); ax_dist.set_xticklabels([f'{i}S' for i in rating_levels])
ax_dist.legend(fontsize=10); ax_dist.grid(axis='y',alpha=0.5,linestyle='--'); plt.tight_layout()
if self.results_dir: plt.savefig(os.path.join(self.results_dir,f"{model_name.lower().replace(' ','_').replace('-','_')}_rating_distribution.png"),dpi=300,bbox_inches='tight')
if is_jupyter_environment(): plt.show()
except Exception as e_plot: self.logger.error(f"Error plotting rating dist for {model_name}: {e_plot}",exc_info=True); print(f" Error plotting rating dist for {model_name}: {e_plot}")
finally:
if fig_dist: plt.close(fig_dist)
def plot_radar_chart(self, model_results: Dict[str, Dict[str, Any]]) -> None:
if not matplotlib_available or not model_results: self.logger.warning("Matplotlib or model results unavailable for radar chart."); return
print("Generating enhanced radar chart for model comparison...")
metrics_radar=['accuracy','close_accuracy','f1_macro','f1_weighted','f1_close','precision_macro','recall_macro','kappa','mae','rmse']
labels_radar=['Exact Acc.','+/-1 Acc.','F1 Macro','F1 Wgt.','F1 (+/-1 Acc.)','Precision (M)','Recall (M)','Kappa','Inv. MAE','Inv. RMSE']
higher_is_better=[True,True,True,True,True,True,True,True,False,False]
models_list = list(model_results.keys())
if not models_list: self.logger.warning("No models for radar chart."); return
data_all_metrics = defaultdict(list)
for model_name in models_list:
for metric_name in metrics_radar: data_all_metrics[metric_name].append(model_results[model_name].get('metrics',{}).get(metric_name,np.nan))
normalized_data = defaultdict(list)
for idx,metric_name in enumerate(metrics_radar):
metric_vals = [v for v in data_all_metrics[metric_name] if pd.notna(v)]
if not metric_vals: normalized_data[metric_name]=[0.5]*len(models_list); continue
min_v,max_v = min(metric_vals),max(metric_vals)
for oval in data_all_metrics[metric_name]:
if pd.isna(oval): nval=0.5
elif max_v==min_v: nval = 0.5 if min_v==0 else (1.0 if higher_is_better[idx] else 0.0)
else: nval = (oval-min_v)/(max_v-min_v)
if metric_name=='kappa': nval=(oval+1.0)/2.0 if pd.notna(oval) else 0.5
elif not higher_is_better[idx] and pd.notna(oval): nval = 1.0-nval
normalized_data[metric_name].append(np.clip(nval,0,1))
plot_vals_list = [[normalized_data[m][i] for m in metrics_radar] for i in range(len(models_list))]
num_vars = len(metrics_radar); angles = np.linspace(0,2*np.pi,num_vars,endpoint=False).tolist(); angles+=angles[:1]
fig_radar=None
try:
fig_radar,ax_radar = plt.subplots(figsize=(14,14),subplot_kw=dict(projection='polar'))
colors = sns.color_palette("husl",len(models_list))
for i,model_name in enumerate(models_list):
model_plot_vals = plot_vals_list[i]+[plot_vals_list[i][0]]
ax_radar.plot(angles,model_plot_vals,'o-',linewidth=2,markersize=6,label=model_name,color=colors[i])
ax_radar.fill(angles,model_plot_vals,alpha=0.25,color=colors[i])
ax_radar.set_xticks(angles[:-1]); ax_radar.set_xticklabels(labels_radar,fontsize=10)
ax_radar.set_ylim(0,1); ax_radar.set_yticks(np.arange(0,1.1,0.2)); ax_radar.set_yticklabels([f"{t:.1f}" for t in np.arange(0,1.1,0.2)],fontsize=9)
ax_radar.grid(True,linestyle='--',alpha=0.7); ax_radar.set_facecolor('#f9f9f9')
plt.title('Normalized Model Performance Comparison\n(Higher score is better for all axes)',fontsize=16,fontweight='bold',pad=30)
ax_radar.legend(loc='upper right',bbox_to_anchor=(1.35,1.15),fontsize=11,frameon=True,fancybox=True,shadow=True)
plt.tight_layout()
if self.results_dir: plt.savefig(os.path.join(self.results_dir,'model_performance_radar_chart.png'),dpi=300,bbox_inches='tight')
if is_jupyter_environment(): plt.show()
except Exception as e_plot: self.logger.error(f"Error plotting radar chart: {e_plot}",exc_info=True); print(f" Error plotting radar chart: {e_plot}")
finally:
if fig_radar: plt.close(fig_radar)
def create_interactive_model_comparison_dashboard(self, model_results: Dict[str, Any]) -> None:
if not plotly_available or not model_results: print("Plotly or model results unavailable for dashboard."); return
print("Creating interactive model comparison dashboard...")
models_list = list(model_results.keys()); metrics_for_dashboard={}
for model_iter in models_list:
metrics = model_results[model_iter].get('metrics',{})
if metrics: metrics_for_dashboard[model_iter]=metrics
if not metrics_for_dashboard: print("No valid metrics for dashboard."); return
models_list = list(metrics_for_dashboard.keys())
fig = make_subplots(rows=2,cols=2,subplot_titles=('Accuracy Metrics','F1 Scores','Error Metrics (Lower is Better)','Overall Ranking (F1 Close Acc.)'),specs=[[{},{}],[{},{"type":"bar"}]])
acc_metrics = ['accuracy','close_accuracy']
for i,metric_name in enumerate(acc_metrics):
values = [metrics_for_dashboard[model].get(metric_name,0) for model in models_list]
fig.add_trace(go.Bar(x=models_list,y=values,name=metric_name.replace('_',' ').title(),marker_color=px.colors.qualitative.Plotly[i],text=np.round(values,3),textposition='auto'),row=1,col=1)
f1_metrics = ['f1_macro','f1_weighted','f1_close']
for i,metric_name in enumerate(f1_metrics):
values = [metrics_for_dashboard[model].get(metric_name,0) for model in models_list]
fig.add_trace(go.Bar(x=models_list,y=values,name=metric_name.replace('_',' ').title(),marker_color=px.colors.qualitative.Pastel[i],text=np.round(values,3),textposition='auto'),row=1,col=2)
error_metrics = ['mae','rmse']
for i,metric_name in enumerate(error_metrics):
values = [metrics_for_dashboard[model].get(metric_name,0) for model in models_list]
fig.add_trace(go.Bar(x=models_list,y=values,name=metric_name.upper(),marker_color=px.colors.qualitative.Set3[i],text=np.round(values,3),textposition='auto'),row=2,col=1)
f1_close_scores = {model:metrics_for_dashboard[model].get('f1_close',0) for model in models_list}
sorted_models = sorted(f1_close_scores.keys(),key=lambda m:f1_close_scores[m],reverse=True)
sorted_vals = [f1_close_scores[m] for m in sorted_models]
fig.add_trace(go.Bar(x=sorted_models,y=sorted_vals,name='F1 (+/-1 Star) Ranking',marker_color=px.colors.sequential.Plasma,text=np.round(sorted_vals,3),textposition='auto'),row=2,col=2)
fig.update_layout(height=900,width=1200,title_text="<b>Interactive Model Performance Dashboard</b>",title_x=0.5,title_font_size=20,showlegend=True,legend_title_text='Metrics',bargap=0.15,bargroupgap=0.1,font=dict(family="Arial, sans-serif",size=10))
fig.update_traces(texttemplate='%{text}',hoverinfo='x+y+name')
if is_jupyter_environment(): fig.show()
html_path = os.path.join(self.results_dir,'interactive_model_dashboard.html')
try: fig.write_html(html_path); print(f"Interactive dashboard saved to: {html_path}"); self.logger.info(f"Interactive dashboard saved: {html_path}")
except Exception as e: print(f"Error saving dashboard: {e}"); self.logger.error(f"Failed to save dashboard: {e}")
def evaluate_model(self, y_true: List[int], y_pred: List[int], model_name: str, prediction_column_name_in_final_df: str, confidence_scores: Optional[List[float]]=None, original_texts_for_analysis: Optional[List[str]]=None, features_df_for_analysis: Optional[pd.DataFrame]=None, transformer_predictions_df: Optional[pd.DataFrame]=None) -> Dict[str,Any]:
self.logger.info(f"Evaluating model: {model_name} (column: {prediction_column_name_in_final_df})..."); print(f"\nEvaluating model: {model_name}...")
metrics = self.calculate_metrics(y_true,y_pred)
if not metrics: self.logger.warning(f"No valid preds/metrics for {model_name}. Skipping."); return {}
self._display_metrics_table(metrics,model_name); self.plot_confusion_matrix(y_true,y_pred,model_name,metrics); self.plot_rating_distribution(y_true,y_pred,model_name,metrics)
y_true_arr, y_pred_arr = np.array(y_true), np.array(y_pred)
valid_mask = ~np.isnan(y_pred_arr) & ~np.isinf(y_pred_arr)
y_true_valid_for_model = y_true_arr[valid_mask]
y_pred_valid_for_model = y_pred_arr[valid_mask]
try: y_pred_valid_int_for_model = y_pred_valid_for_model.astype(int)
except ValueError: y_pred_valid_int_for_model = pd.to_numeric(y_pred_valid_for_model,errors='coerce').fillna(3).astype(int)
if original_texts_for_analysis and self.pipeline is not None:
current_model_original_texts = [original_texts_for_analysis[i] for i, keep in enumerate(valid_mask) if keep] if valid_mask is not None else original_texts_for_analysis
current_model_features_df = features_df_for_analysis[valid_mask].reset_index(drop=True) if features_df_for_analysis is not None and valid_mask is not None and not features_df_for_analysis.empty else pd.DataFrame()
current_model_transformer_preds_df = transformer_predictions_df[valid_mask].reset_index(drop=True) if transformer_predictions_df is not None and valid_mask is not None and not transformer_predictions_df.empty else pd.DataFrame()
self.worst_prediction_analyzer.analyze_and_display_worst_predictions(
model_name_single=model_name,
y_true_model=y_true_valid_for_model,
y_pred_model=y_pred_valid_int_for_model,
original_texts_for_model=current_model_original_texts,
features_df_for_model=current_model_features_df,
valid_indices_mask_for_model=None,
transformer_predictions_df_for_model=current_model_transformer_preds_df,
top_n=50, # FIXED: Changed from 100 to 50
min_error_threshold=1
)
if confidence_scores and len(confidence_scores)==len(y_true_arr) and "RoBERTa" not in model_name and "BERT" not in model_name:
conf_scores_valid = np.array(confidence_scores)[valid_mask]
if len(conf_scores_valid)==len(y_true_valid_for_model): self._analyze_confidence(y_true_valid_for_model,y_pred_valid_int_for_model,conf_scores_valid,model_name)
else: self.logger.warning(f"Length mismatch for confidence scores after filtering in {model_name}.")
elif confidence_scores and ("RoBERTa" in model_name or "BERT" in model_name): self.logger.info(f"Skipping custom confidence score analysis for Transformer model: {model_name}")
self.logger.info(f"Evaluation for {model_name} complete."); print(f"Evaluation for {model_name} complete.")
return {'model_name':model_name,'prediction_column_name_in_final_df':prediction_column_name_in_final_df,'metrics':metrics,'predictions':y_pred_valid_int_for_model.tolist() if len(y_pred_valid_int_for_model)>0 else []}
def _display_metrics_table(self, metrics: Dict[str, float], model_name: str) -> None:
metrics_df_data = {'Metric':['Accuracy (Exact)','Accuracy (+/-1 Star)','MAE','RMSE','F1 Score (Macro)','F1 Score (Weighted)','F1 Score (+/-1 Star)','Precision (Macro)','Recall (Macro)',"Cohen's Kappa",'Sample Size'], 'Value':[f"{metrics.get(k,0.0):.4f}" if k!='sample_size' else f"{metrics.get(k,0):,}" for k in ['accuracy','close_accuracy','mae','rmse','f1_macro','f1_weighted','f1_close','precision_macro','recall_macro','kappa','sample_size']]}
df_metrics = pd.DataFrame(metrics_df_data); print(f"\n--- {model_name} Performance Metrics ---"); safe_display(df_metrics); print("------------------------------------")
def _analyze_confidence(self, y_true_valid: np.ndarray, y_pred_valid: np.ndarray, confidence_scores_valid: np.ndarray, model_name: str) -> None:
if not matplotlib_available: self.logger.warning(f"Matplotlib unavailable for confidence plot: {model_name}"); return
if len(y_true_valid)==0: self.logger.warning(f"No valid data for confidence analysis: {model_name}"); return
bins_conf = np.array([0.0,0.25,0.5,0.75,0.9,1.01]); labels_conf = ['V.Low (0-.25)','Low (.25-.5)','Med (.5-.75)','High (.75-.9)','V.High (.9-1)']
results,acc_list,close_acc_list,mae_list,counts_list = [],[],[],[],[]
for i_conf in range(len(bins_conf)-1):
mask = (confidence_scores_valid>=bins_conf[i_conf])&(confidence_scores_valid<bins_conf[i_conf+1]); count = np.sum(mask); counts_list.append(count)
if count > 0:
acc = np.mean(y_true_valid[mask]==y_pred_valid[mask]); close_acc = np.mean(np.abs(y_true_valid[mask]-y_pred_valid[mask])<=1); mae = mean_absolute_error(y_true_valid[mask],y_pred_valid[mask])
acc_list.append(acc); close_acc_list.append(close_acc); mae_list.append(mae)
results.append({'Confidence Level':labels_conf[i_conf],'Num Reviews':count,'Accuracy':f"{acc:.3f}",'Close Acc (+/-1S)':f"{close_acc:.3f}",'MAE':f"{mae:.3f}"})
else:
for lst in [acc_list,close_acc_list,mae_list]: lst.append(np.nan)
results.append({'Confidence Level':labels_conf[i_conf],'Num Reviews':0,'Accuracy':"N/A",'Close Acc (+/-1S)':"N/A",'MAE':"N/A"})
if results: print(f"\n--- Confidence vs. Performance Analysis for {model_name} ---"); safe_display(pd.DataFrame(results)); print("------------------------------------------------------")
fig_conf=None
if matplotlib_available and any(c>0 for c in counts_list):
fig_conf,ax1 = plt.subplots(figsize=(12,7)); x_indices = np.arange(len(labels_conf))
try:
ax1.plot(x_indices,acc_list,'o-g',markerfacecolor='lightgreen',label='Exact Accuracy',ms=8); ax1.plot(x_indices,close_acc_list,'s-b',markerfacecolor='skyblue',label='Close Accuracy (+/-1 Star)',ms=8)
ax1.set_xlabel('Confidence Level Bin',fontsize=12); ax1.set_ylabel('Accuracy Score',color='k',fontsize=12); ax1.tick_params(axis='y',labelcolor='k')
ax1.set_xticks(x_indices); ax1.set_xticklabels(labels_conf,rotation=30,ha='right'); ax1.grid(True,linestyle=':',alpha=0.6); ax1.set_ylim(0,1.05)
ax2 = ax1.twinx(); ax2.plot(x_indices,mae_list,'^-r',markerfacecolor='lightcoral',label='MAE (Lower is Better)',ms=8)
ax2.set_ylabel('Mean Absolute Error (MAE)',color='r',fontsize=12); ax2.tick_params(axis='y',labelcolor='r')
for i_bin,count_val in enumerate(counts_list):
if count_val>0 and not np.isnan(acc_list[i_bin]): ax1.text(x_indices[i_bin],acc_list[i_bin]+0.02,f'n={count_val}',ha='center',va='bottom',fontsize=9,color='gray')
lines1,labels1 = ax1.get_legend_handles_labels(); lines2,labels2 = ax2.get_legend_handles_labels()
ax2.legend(lines1+lines2,labels1+labels2,loc='upper center',bbox_to_anchor=(0.5,-0.18),ncol=3,fancybox=True,shadow=True)
fig_conf.suptitle(f'Model Performance vs. Custom Confidence Score - {model_name}',fontsize=15,fontweight='bold'); plt.tight_layout(rect=[0,0.1,1,0.95])
if self.results_dir: plt.savefig(os.path.join(self.results_dir,f'{model_name.lower().replace(" ","_").replace("-","_")}_confidence_analysis.png'),dpi=300,bbox_inches='tight')
if is_jupyter_environment(): plt.show()
except Exception as e_plot: self.logger.error(f"Error plotting confidence for {model_name}: {e_plot}",exc_info=True); print(f" Error plotting confidence for {model_name}: {e_plot}")
finally:
if fig_conf: plt.close(fig_conf)
#%% === DATA LOADING AND UTILITIES ===
def download_file(url: str, destination: str) -> bool:
if os.path.exists(destination): print(f"File exists: {destination}. Skipping."); return True
if not requests_available: print("Requests library not available."); return False
try:
print(f"Downloading from {url} to {destination}..."); response = requests.get(url,stream=True,timeout=60); response.raise_for_status()
total_size = int(response.headers.get('content-length',0)); os.makedirs(os.path.dirname(destination),exist_ok=True)
global tqdm; dl_desc = f"Downloading {os.path.basename(destination)}"
with open(destination,'wb') as f_out:
if total_size>0 and tqdm_available:
with tqdm(total=total_size,unit='B',unit_scale=True,desc=dl_desc,ncols=80) as p_bar:
for chunk in response.iter_content(chunk_size=8192):
if chunk: f_out.write(chunk); p_bar.update(len(chunk))
else:
if not tqdm_available: print(f"{dl_desc}: Starting (size unknown or tqdm unavailable)...")
for chunk_num,chunk in enumerate(response.iter_content(chunk_size=8192)):
if chunk: f_out.write(chunk)
if not tqdm_available and chunk_num%100==0 and chunk_num>0: print(f"{dl_desc}: Downloaded {chunk_num*8192/1024/1024:.2f} MB...")
if not tqdm_available: print(f"{dl_desc}: Download stream finished.")
print(f"Download successful: {destination}"); return True
except requests.exceptions.RequestException as e_req: print(f"Download failed (network/HTTP error): {e_req}")
except Exception as e_gen: print(f"Download failed (unexpected error): {e_gen}")
if os.path.exists(destination): os.remove(destination)
return False
def detect_product_category(text: str) -> str:
if not isinstance(text,str) or not text.strip(): return 'unknown'
words_in_text = set(re.findall(r'\b\w{3,}\b',text.lower()))
best_score, detected_cat = 0, 'unknown'
for cat_key, domain_data in DOMAIN_WORDS.items():
all_cat_keywords = domain_data.get('positive',set()) | domain_data.get('negative',set())
cat_spec_key = f"{cat_key}_specs"
if cat_spec_key in PRODUCT_SPEC_WORDS: all_cat_keywords.update(PRODUCT_SPEC_WORDS[cat_spec_key])
current_score = len(words_in_text.intersection(all_cat_keywords))
if current_score > best_score: best_score,detected_cat = current_score,cat_key
return detected_cat if best_score>=1 else 'unknown'
def load_and_clean_data(file_path: str, sample_size: Optional[int]=None) -> Tuple[List[str],List[int],List[str]]:
print(f"Loading and cleaning data from: {file_path}...")
try:
df = pd.read_csv(file_path,usecols=['overall','reviewText'],dtype={'overall':'str','reviewText':'str'},on_bad_lines='warn')
print(f" Initial raw shape: {df.shape}"); initial_rows = len(df)
df.dropna(subset=['overall','reviewText'],inplace=True); df['overall'] = pd.to_numeric(df['overall'],errors='coerce'); df.dropna(subset=['overall'],inplace=True)
df = df[df['overall'].between(1,5)]; df['overall'] = df['overall'].astype(int)
df['reviewText'] = df['reviewText'].astype(str).str.strip(); df = df[df['reviewText'].str.len()>0]
cleaned_rows = len(df); print(f" Retained {cleaned_rows} rows after cleaning (dropped {initial_rows-cleaned_rows}).")
if sample_size is not None and 0<sample_size<len(df): print(f" Sampling {sample_size} reviews..."); df=df.sample(n=sample_size,random_state=42).reset_index(drop=True)
elif sample_size is not None and sample_size>=len(df): print(f" Sample size ({sample_size}) >= available data ({len(df)}). Using all data.")
elif sample_size is None: print(f" Using full dataset ({len(df)} reviews).")
print(f" Final data shape: {df.shape}"); texts,ratings = df['reviewText'].tolist(),df['overall'].tolist()
print(" Detecting product categories..."); categories = []
global tqdm; cat_iter = tqdm(texts,desc="Detecting categories",unit="review") if tqdm_available else texts
for idx,text_item in enumerate(cat_iter):
categories.append(detect_product_category(text_item))
if not tqdm_available and idx>0 and len(texts)>0 and (idx+1)%max(1,len(texts)//10)==0: print(f"Detecting categories: {idx+1}/{len(texts)}...")
if tqdm_available and isinstance(cat_iter,tqdm): cat_iter.close()
elif not tqdm_available and len(texts)>0: print("Detecting categories: Completed!")
cat_counts=Counter(categories); print("\n Category distribution:"); total_cats=len(categories)
for cat,count in cat_counts.most_common(): print(f" {cat.title()}: {count:,} ({(count/total_cats)*100 if total_cats>0 else 0:.1f}%)")
print("Data loading and cleaning complete."); return texts,ratings,categories
except FileNotFoundError: print(f"CRITICAL Error: File not found: {file_path}"); raise
except pd.errors.EmptyDataError: print(f"CRITICAL Error: File empty: {file_path}"); raise
except KeyError as e: print(f"CRITICAL Error: Missing column: {e}. Ensure 'overall','reviewText' exist."); raise
except Exception as e: print(f"CRITICAL Error: Unexpected error loading/cleaning: {e}"); raise
#%% === MAIN PIPELINE ===
class SentimentAnalysisPipeline:
def __init__(self, results_dir: Optional[str]=None):
print("Initializing Sentiment Analysis Pipeline with Transformer and ABSA capabilities...")
if results_dir is None: timestamp = datetime.now().strftime("%Y%m%d_%H%M%S"); results_dir = f"sentiment_results_transformer_absa_{timestamp}"
os.makedirs(results_dir,exist_ok=True); self.results_dir = os.path.abspath(results_dir)
self.logger = setup_logging(self.results_dir); self.logger.info("SentimentAnalysisPipeline instance created.")
self.resources = self._initialize_resources(); self.preprocessor = TextPreprocessor(self.resources)
self.feature_extractor = FeatureExtractor(self.resources); self.evaluator = ModelEvaluator(self.results_dir,self.logger,pipeline_instance=self)
self.roberta_sentiment_predictor = TransformerSentimentPredictor(logger=self.logger) if transformers_available else None
self.absa_analyzer = AspectBasedSentimentAnalyzer(self.results_dir,self.logger)
self.texts,self.ratings,self.categories,self.preprocessed_texts_rules,self.preprocessed_texts_transformers = [],[],[],[],[]
self.features_df,self.transformer_predictions_df,self.final_df = pd.DataFrame(),pd.DataFrame(),pd.DataFrame()
self.absa_results_all_reviews,self.evaluation_results,self.models_run_successfully = [],{},[]
self.logger.info(f"Pipeline initialized. Results directory: {self.results_dir}"); print(f"Pipeline initialized. Results stored in: {self.results_dir}")
def _initialize_resources(self) -> Dict[str,Any]:
self.logger.info("Initializing NLTK-dependent resources."); resources={}
if NLTK_INITIALIZED:
try:
from nltk.sentiment.vader import SentimentIntensityAnalyzer; from nltk.corpus import stopwords
resources['vader_analyzer']=SentimentIntensityAnalyzer(); resources['stop_words']=set(stopwords.words('english'))
self.logger.info("NLTK VADER & stopwords loaded."); print(" NLTK VADER & stopwords loaded.")
except Exception as e: self.logger.warning(f"Failed to load VADER/stopwords: {e}"); print(f" Warning: Could not load VADER/stopwords: {e}"); resources.setdefault('vader_analyzer',None); resources.setdefault('stop_words',set())
else: self.logger.warning("NLTK not initialized. Using fallback."); print(" Warning: NLTK not initialized. Using fallback."); resources['vader_analyzer']=None; resources['stop_words']=set()
return resources
def load_data(self,data_source:str,sample_size:Optional[int]=None)->None:
display_section_header("STEP 1: Data Loading & Initial Cleaning",1); self.logger.info(f"Loading data: {data_source}, sample: {sample_size if sample_size is not None else 'Full Dataset'}")
file_path=data_source
if data_source.startswith('http'):
dl_fname = f"downloaded_sentiment_data_{datetime.now().strftime('%Y%m%d')}.csv"; data_sdir = os.path.join(self.results_dir,"data"); os.makedirs(data_sdir,exist_ok=True); target_path = os.path.join(data_sdir,dl_fname)
self.logger.info(f"URL source. Downloading to: {target_path}")
if not download_file(data_source,target_path): self.logger.error(f"Download failed: {data_source}"); raise Exception(f"Data download failed: {data_source}")
file_path=target_path; self.logger.info(f"Data downloaded to: {file_path}")
self.texts,self.ratings,self.categories = load_and_clean_data(file_path,sample_size)
self.logger.info(f"Loaded {len(self.texts)} reviews. Ratings: {Counter(self.ratings)}. Categories: {Counter(self.categories).most_common(5)}")
print(f"\nData loading successful! Total reviews: {len(self.texts):,}");
if self.ratings: print(f" Avg rating: {np.mean(self.ratings):.2f}"); print("-"*60)
def preprocess_data(self)->None:
display_section_header("STEP 2: Text Preprocessing",1); self.logger.info("Initiating text preprocessing for rule-based and Transformer models.")
if not self.texts: self.logger.error("No data to preprocess."); raise Exception("No data loaded.")
self.preprocessed_texts_rules = self.preprocessor.batch_preprocess(self.texts,mode='rule_based')
self.logger.info(f"Preprocessing for rule-based models complete: {len(self.preprocessed_texts_rules)} texts.")
self.preprocessed_texts_transformers = self.preprocessor.batch_preprocess(self.texts,mode='transformer')
self.logger.info(f"Preprocessing for Transformer models complete: {len(self.preprocessed_texts_transformers)} texts.")
print("\nText preprocessing finished!")
if self.texts and self.preprocessed_texts_rules and self.preprocessed_texts_transformers and len(self.texts) > 0:
print(f" Sample - Original: '{self.texts[0][:80]}...'\n Sample - Processed (Rules): '{self.preprocessed_texts_rules[0][:80]}...'\n Sample - Processed (Transformers): '{self.preprocessed_texts_transformers[0][:80]}...'")
print("-"*60)
def extract_features_for_rule_based_models(self)->None:
display_section_header("STEP 3A: Feature Extraction (Rule-Based Models)",1); self.logger.info("Extracting features for rule-based models.")
if not self.texts or not self.preprocessed_texts_rules: self.logger.error("Texts not available for feature extraction."); raise Exception("Texts not available.")
self.features_df = self.feature_extractor.batch_extract_features(self.texts,self.preprocessed_texts_rules,self.categories)
csv_path = os.path.join(self.results_dir,'extracted_rule_based_features.csv')
try:
self.features_df.to_csv(csv_path,index=False,encoding='utf-8')
self.logger.info(f"Rule-based features extracted ({self.features_df.shape}). Saved to: {csv_path}")
except Exception as e:
self.logger.error(f"Failed to save rule-based features CSV: {e}")
print(f" Warning: Could not save features CSV: {e}")
print(f"\nRule-based feature extraction finished! Shape: {self.features_df.shape}")
if not self.features_df.empty and self.texts and len(self.texts) == len(self.features_df):
print(f" Preview of extracted rule-based features (Top {min(50, len(self.features_df))} rows with full text preview on the left):")
if isinstance(self.texts, list) and all(isinstance(t, str) or pd.isna(t) for t in self.texts):
original_texts_series = pd.Series(self.texts, name='full_text_preview', index=self.features_df.index) # Assumes features_df has compatible index
df_for_display = pd.concat([original_texts_series, self.features_df], axis=1)
display_limit = min(50, len(df_for_display)) # FIXED: Changed from 300 to 50
with pd.option_context('display.max_colwidth', None):
safe_display(df_for_display.head(display_limit))
else:
self.logger.warning("Original texts not in expected list-of-strings format for display with features. Displaying features_df only.")
safe_display(self.features_df.head(min(50, len(self.features_df)))) # FIXED: Changed from 300 to 50
elif not self.features_df.empty:
self.logger.warning("Original texts not available or length mismatch for display with features. Displaying features_df only.")
safe_display(self.features_df.head(min(50, len(self.features_df)))) # FIXED: Changed from 300 to 50
print("-"*60)
def run_absa(self)->None:
display_section_header("STEP 3B: Aspect-Based Sentiment Analysis (ABSA)",1); self.logger.info("Initiating ABSA.")
if not self.texts or not self.categories: self.logger.error("Texts/categories missing for ABSA."); raise Exception("Texts/categories missing for ABSA.")
can_do_transformer_absa = self.absa_analyzer and self.absa_analyzer.absa_pipeline and not self.absa_analyzer.use_rule_based_absa_fallback
can_do_rule_based_absa = self.absa_analyzer and self.absa_analyzer.use_rule_based_absa_fallback and textproc_available and self.absa_analyzer.sent_tokenizer_nltk
if not (can_do_transformer_absa or can_do_rule_based_absa):
self.logger.warning("ABSA analyzer not fully initialized or dependencies missing (Transformer/TextBlob/NLTK sent_tokenize). Skipping ABSA.")
print("ABSA analyzer not available or configured properly for Transformer or rule-based fallback. Skipping.")
return
if can_do_transformer_absa:
self.logger.info("Using Transformer-based ABSA.")
print("Using Transformer-based ABSA.")
elif can_do_rule_based_absa:
self.logger.info("Using rule-based ABSA fallback (TextBlob & NLTK).")
print("Using rule-based ABSA fallback (TextBlob & NLTK).")
self.absa_results_all_reviews = self.absa_analyzer.batch_analyze_reviews(self.texts,self.categories)
self.logger.info(f"ABSA complete: {len(self.absa_results_all_reviews)} reviews processed.")
raw_path = os.path.join(self.absa_analyzer.absa_results_dir,'absa_raw_results.json')
try:
with open(raw_path,'w') as f: json.dump(self.absa_results_all_reviews,f,indent=2)
self.logger.info(f"Raw ABSA results saved to {raw_path}")
except Exception as e: self.logger.error(f"Failed to save raw ABSA: {e}")
num_aspects_found = sum(len(r) for r in self.absa_results_all_reviews)
print(f"ABSA complete. {num_aspects_found} aspect-sentiments found.")
if num_aspects_found > 0:
for i,res_list in enumerate(self.absa_results_all_reviews):
if res_list: print(f" Review {i} example (method: {res_list[0].get('method', 'N/A')}): {res_list[:2]}"); break
else: print(" No aspects found in processed reviews.")
print("-"*60)
def run_models(self)->None:
display_section_header("STEP 4: Running Sentiment Models",1); self.logger.info("Running models.")
if self.features_df.empty and (not self.roberta_sentiment_predictor or not self.roberta_sentiment_predictor.pipeline):
self.logger.error("No features or Transformer. Cannot run models.");
print("CRITICAL: No features available for rule-based models AND Transformer model could not be initialized. Model execution cannot proceed.")
raise Exception("No features or Transformer model.")
self.final_df=pd.DataFrame({'text_index':range(len(self.texts)),'original_text':self.texts,'preprocessed_text_rules':self.preprocessed_texts_rules,'preprocessed_text_transformers':self.preprocessed_texts_transformers,'true_rating':self.ratings,'detected_category':self.categories})
if not self.features_df.empty: self.final_df=pd.merge(self.final_df,self.features_df,left_index=True,right_index=True,how='left')
else: self.logger.warning("features_df is empty. Rule-based models might not produce meaningful results if they rely on these features.")
self.models_run_successfully=[]
rule_defs = {"VADER":(SentimentModels.vader_to_stars,'vader_stars',lambda:self.resources.get('vader_analyzer') is not None and not self.features_df.empty),"TextBlob":(SentimentModels.textblob_to_stars,'textblob_stars',lambda:textproc_available and not self.features_df.empty),"Feature-Based":(SentimentModels.feature_based_to_stars,'feature_based_stars',lambda:not self.features_df.empty),"Multidimensional":(SentimentModels.multidimensional_to_stars,'multidimensional_stars',lambda:not self.features_df.empty),"Rule-Based Enhanced":(SentimentModels.rule_based_enhanced_to_stars,'rule_based_stars',lambda:not self.features_df.empty),"Hybrid Weighted":(SentimentModels.hybrid_weighted_to_stars,'hybrid_stars',lambda:not self.features_df.empty),"Lexicon Ensemble":(SentimentModels.lexicon_ensemble_to_stars,'lexicon_ensemble_stars',lambda:not self.features_df.empty),"N-gram Enhanced":(SentimentModels.ngram_enhanced_to_stars,'ngram_enhanced_stars',lambda:not self.features_df.empty),}
for dn,(mf,pcn,avail_fn) in rule_defs.items():
if not avail_fn(): print(f" Skipping {dn} (unavailable/features_df empty)."); self.logger.info(f"Skipped {dn}."); continue
print(f" Running {dn}..."); self.logger.info(f"Executing {dn}.")
try: self.final_df[pcn]=self.final_df.apply(lambda r:mf(r.to_dict()),axis=1); self.models_run_successfully.append(dn); print(f" {dn} completed.")
except Exception as e: print(f" ERROR {dn}: {e}"); self.logger.error(f"{dn} failed: {e}",exc_info=True)
if self.roberta_sentiment_predictor and self.roberta_sentiment_predictor.pipeline:
dn_trans="RoBERTa Sentiment"; pcn_trans="roberta_sentiment_stars"; print(f" Running {dn_trans}..."); self.logger.info(f"Executing {dn_trans}.")
try:
trans_raw_out = self.roberta_sentiment_predictor.batch_predict(self.preprocessed_texts_transformers)
if self.transformer_predictions_df.empty or len(self.transformer_predictions_df) != len(trans_raw_out):
self.transformer_predictions_df = pd.DataFrame(index=range(len(trans_raw_out)))
self.transformer_predictions_df['roberta_sentiment_raw_label']=[o['label'] if o else None for o in trans_raw_out]
self.transformer_predictions_df['roberta_sentiment_raw_score']=[o['score'] if o else None for o in trans_raw_out]
self.final_df[pcn_trans]=[SentimentModels.roberta_sentiment_to_stars(o) for o in trans_raw_out]
self.models_run_successfully.append(dn_trans); print(f" {dn_trans} completed.")
except Exception as e: print(f" ERROR {dn_trans}: {e}"); self.logger.error(f"{dn_trans} failed: {e}",exc_info=True)
else:
print(" Skipping RoBERTa Sentiment model (predictor not available or pipeline failed to load).")
self.logger.warning("Skipped RoBERTa Sentiment model as predictor or its pipeline is not available.")
if len([m for m in self.models_run_successfully if m!="Ensemble"])>=1:
print(" Running Advanced Ensemble..."); self.logger.info("Executing Advanced Ensemble.")
ens_map={'vader_stars':'vader','textblob_stars':'textblob','feature_based_stars':'feature_based','multidimensional_stars':'multidimensional','rule_based_stars':'rule_based_enhanced','hybrid_stars':'hybrid_weighted','lexicon_ensemble_stars':'lexicon_ensemble','ngram_enhanced_stars':'ngram_enhanced','roberta_sentiment_stars':'roberta_sentiment'}
try:
def apply_ens(row):
preds={ek:row[pce] for pce,ek in ens_map.items() if pce in row and pd.notna(row[pce])}
feats=row.to_dict() if not self.features_df.empty else {}
return SentimentModels.advanced_ensemble_prediction(preds,features=feats)
self.final_df['ensemble_stars']=self.final_df.apply(apply_ens,axis=1)
self.models_run_successfully.append('Ensemble'); print(" Advanced Ensemble completed.")
except Exception as e: print(f" ERROR Advanced Ensemble: {e}"); self.logger.error(f"Ensemble failed: {e}",exc_info=True)
else: print(" Skipping Advanced Ensemble (no base models)."); self.logger.info("Skipped Ensemble.")
if not self.final_df.empty:
preds_csv_path = os.path.join(self.results_dir,'model_predictions_with_features.csv')
try:
self.final_df.to_csv(preds_csv_path,index=False,encoding='utf-8')
self.logger.info(f"Predictions saved to: {preds_csv_path}")
print(f" Model predictions with features saved to: {preds_csv_path}")
if is_jupyter_environment():
display_limit = min(50, len(self.final_df)) # FIXED: Changed from 300 to 50
print(f"\n Preview of 'model_predictions_with_features.csv' (Top {display_limit} rows, including full text):")
display_cols = ['original_text', 'true_rating', 'detected_category']
prediction_cols = [col for col in self.final_df.columns if '_stars' in col]
display_cols.extend(prediction_cols)
display_cols_present = [col for col in display_cols if col in self.final_df.columns]
with pd.option_context('display.max_colwidth', None):
safe_display(self.final_df[display_cols_present].head(display_limit))
except Exception as e:
self.logger.error(f"Failed to save predictions CSV or display preview: {e}")
print(f" Warning: Could not save predictions CSV or display preview: {e}")
print(f"\nModel prediction phase finished! Models run: {', '.join(self.models_run_successfully) or 'None'}")
print(f" Final DF shape: {self.final_df.shape}"); print("-"*60)
def evaluate_models(self)->None:
display_section_header("STEP 5: Model Evaluation & Analysis",1); self.logger.info("Initiating model evaluation.")
if not hasattr(self,'final_df') or self.final_df.empty: self.logger.error("final_df empty. Cannot evaluate."); raise Exception("final_df empty.")
model_cols={'VADER':'vader_stars','TextBlob':'textblob_stars','Feature-Based':'feature_based_stars','Multidimensional':'multidimensional_stars','Rule-Based Enhanced':'rule_based_stars','Hybrid Weighted':'hybrid_stars','Lexicon Ensemble':'lexicon_ensemble_stars','N-gram Enhanced':'ngram_enhanced_stars','RoBERTa Sentiment':'roberta_sentiment_stars','Ensemble':'ensemble_stars'}
self.evaluation_results={}
for dn,pcn in model_cols.items():
if dn in self.models_run_successfully and pcn in self.final_df.columns:
self.logger.info(f"Evaluating model: {dn}")
eval_res = self.evaluator.evaluate_model(y_true=self.final_df['true_rating'].tolist(),y_pred=self.final_df[pcn].tolist(),model_name=dn,prediction_column_name_in_final_df=pcn,confidence_scores=(self.final_df['custom_sentiment_score'].tolist() if 'custom_sentiment_score' in self.final_df and not self.features_df.empty else None),original_texts_for_analysis=self.final_df['original_text'].tolist(),features_df_for_analysis=self.features_df if not self.features_df.empty else pd.DataFrame(),transformer_predictions_df=self.transformer_predictions_df if not self.transformer_predictions_df.empty else pd.DataFrame())
if eval_res: self.evaluation_results[dn]=eval_res
else: self.logger.warning(f"Eval for {dn} no results.")
elif dn in self.models_run_successfully: self.logger.warning(f"Pred col '{pcn}' not found for {dn}.")
self.logger.info("Model evaluation phase finished.")
def generate_visualizations(self)->None:
display_section_header("STEP 6: Generating Advanced Visualizations",1); self.logger.info("Generating visualizations.")
if not matplotlib_available: self.logger.warning("Matplotlib unavailable. Skipping visualizations."); return
try: print(" Generating data distribution plots..."); self.logger.info("Plotting data distributions."); self._plot_data_distribution()
except Exception as e: self.logger.error(f"Data dist plot failed: {e}",exc_info=True)
try:
if not self.features_df.empty:
print(" Generating rule-based feature analysis plots (Boxplots)..."); self.logger.info("Plotting rule-based feature analysis (Boxplots)."); self._plot_feature_analysis()
print(" Generating additional rule-based feature analysis plots (Distributions, Heatmap)..."); self.logger.info("Plotting additional rule-based feature analysis (Distributions, Heatmap)."); self._plot_additional_feature_visuals()
else: print(" Skipping rule-based feature plots (no features).")
except Exception as e: self.logger.error(f"Rule-based feature plot failed: {e}",exc_info=True)
try:
if self.categories: print(" Generating category analysis plots..."); self.logger.info("Plotting category analysis."); self._plot_category_analysis()
else: print(" Skipping category plots (no categories).")
except Exception as e: self.logger.error(f"Category plot failed: {e}",exc_info=True)
try:
if hasattr(self,'evaluation_results') and self.evaluation_results:
print(" Generating detailed model comparison plots (including Radar Chart)...");
self.logger.info("Plotting model comparisons (including Radar).");
self._plot_model_comparison_details()
else: print(" Skipping detailed model comparison plots (no eval results).")
except Exception as e: self.logger.error(f"Model comparison plot failed: {e}",exc_info=True)
try:
if self.absa_results_all_reviews and self.absa_analyzer: print(" Generating ABSA summary visualizations..."); self.logger.info("Generating ABSA visualizations."); self.absa_analyzer.generate_absa_summary_visualizations(self.absa_results_all_reviews,self.categories)
else: print(" Skipping ABSA visualizations (no ABSA results/analyzer).")
except Exception as e: self.logger.error(f"ABSA viz failed: {e}",exc_info=True)
print("\nVisualization generation phase finished!"); self.logger.info("Visualization completed."); print("-"*60)
def _plot_data_distribution(self)->None:
if not self.texts or not self.ratings: print(" No texts/ratings for data dist."); return
fig,axes=plt.subplots(2,2,figsize=(18,14)); fig.suptitle('Exploratory Data Analysis: Data Distributions',fontsize=18,fontweight='bold'); ax_flat=axes.flatten()
try:
if self.ratings:
rc=pd.Series(self.ratings).value_counts().sort_index(); colors=sns.color_palette("viridis_r",len(rc)); bars=ax_flat[0].bar(rc.index.astype(str)+"S",rc.values,color=colors,width=0.6)
ax_flat[0].set_title('Star Rating Distribution',fontsize=14); ax_flat[0].set_xlabel('Star Rating'); ax_flat[0].set_ylabel('Number of Reviews')
max_rc_val = rc.max() if not rc.empty else 1
for bar in bars: yv=bar.get_height(); ax_flat[0].text(bar.get_x()+bar.get_width()/2.,yv+max_rc_val*0.01,int(yv),ha='center',va='bottom') if yv>0 else None; ax_flat[0].grid(axis='y',ls='--',alpha=0.7)
except Exception as e: self.logger.error(f"Rating dist plot error: {e}",exc_info=True); ax_flat[0].text(0.5,0.5,"Error",ha='center')
try:
if self.texts:
tl=[len(str(t)) for t in self.texts if pd.notna(t)]
if tl: ax_flat[1].hist(tl,bins=50,alpha=0.75,color='lightseagreen',edgecolor='darkcyan'); ax_flat[1].set_title('Review Text Length (Chars)',fontsize=14); ax_flat[1].set_xlabel('# Chars'); ax_flat[1].set_ylabel('Frequency'); ml=np.mean(tl); ax_flat[1].axvline(ml,color='red',ls='dashed',lw=2,label=f'Mean: {ml:.0f}'); ax_flat[1].legend(); ax_flat[1].grid(axis='y',ls='--',alpha=0.7); ax_flat[1].set_xscale('log')
else: ax_flat[1].text(0.5,0.5,"No text lengths",ha='center')
except Exception as e: self.logger.error(f"Text length plot error: {e}",exc_info=True); ax_flat[1].text(0.5,0.5,"Error",ha='center')
try:
if self.categories:
cc=pd.Series(self.categories).value_counts().head(10)
if not cc.empty: colors=sns.color_palette("Spectral",len(cc)); bars=ax_flat[2].barh(cc.index,cc.values,color=colors,height=0.7); ax_flat[2].set_title(f'Top {len(cc)} Categories',fontsize=14); ax_flat[2].set_xlabel('# Reviews'); ax_flat[2].invert_yaxis(); [ax_flat[2].text(val+cc.max()*0.01,i,str(val),va='center') for i,val in enumerate(cc.values)]; ax_flat[2].grid(axis='x',ls='--',alpha=0.7)
else: ax_flat[2].text(0.5,0.5,"No categories",ha='center')
except Exception as e: self.logger.error(f"Category dist plot error: {e}",exc_info=True); ax_flat[2].text(0.5,0.5,"Error",ha='center')
try:
if self.categories and self.ratings and matplotlib_available:
dfp = pd.DataFrame({'category': self.categories, 'rating': self.ratings})
top_cats_series = pd.Series(self.categories).value_counts()
min_reviews_for_prop = max(20, int(len(self.texts) * 0.001)) if len(self.texts) > 0 else 20
top_cats = top_cats_series[top_cats_series >= min_reviews_for_prop].nlargest(7).index.tolist()
if not top_cats and not top_cats_series.empty :
top_cats = top_cats_series.nlargest(min(7, len(top_cats_series))).index.tolist()
if top_cats:
dff = dfp[dfp['category'].isin(top_cats)]
if not dff.empty:
cat_rating_props = dff.groupby('category')['rating'].value_counts(normalize=True).mul(100).unstack(fill_value=0)
for r_col in range(1, 6):
if r_col not in cat_rating_props.columns: cat_rating_props[r_col] = 0.0
cat_rating_props = cat_rating_props.reindex(columns=sorted(cat_rating_props.columns)).reindex(top_cats)
rating_colors = sns.color_palette("RdYlGn", n_colors=5)
cat_rating_props.plot(kind='barh', stacked=True, ax=ax_flat[3],
color=[rating_colors[i] for i in range(5)], width=0.8)
ax_flat[3].set_title('Rating Proportions in Top Categories', fontsize=14)
ax_flat[3].set_xlabel('Percentage of Reviews (%)')
ax_flat[3].set_ylabel('Category')
ax_flat[3].legend(title='Rating', labels=[f'{i+1}-Star' for i in range(5)], bbox_to_anchor=(1.05, 1), loc='upper left')
ax_flat[3].set_xlim(0, 100)
ax_flat[3].grid(axis='x', ls='--', alpha=0.7)
for n, (idx, row) in enumerate(cat_rating_props.iterrows()):
cumulative_width = 0
for i, val in enumerate(row):
if val > 5:
ax_flat[3].text(cumulative_width + val / 2, n, f'{val:.0f}%', ha='center', va='center', fontsize=7, color='black' if val > 30 else 'dimgray')
cumulative_width += val
else: ax_flat[3].text(0.5,0.5,"No data for top cats proportion plot",ha='center')
else: ax_flat[3].text(0.5,0.5,"Not enough categories/data for plot",ha='center')
else: ax_flat[3].text(0.5,0.5,"No categories/ratings or matplotlib",ha='center')
except Exception as e: self.logger.error(f"Category rating proportion plot error: {e}",exc_info=True); ax_flat[3].text(0.5,0.5,"Error",ha='center')
plt.tight_layout(rect=[0,0,1,0.96]); plt.savefig(os.path.join(self.results_dir,'data_distributions_analysis.png'),dpi=300,bbox_inches='tight')
if is_jupyter_environment(): plt.show(); plt.close(fig)
def _plot_feature_analysis(self)->None:
if self.features_df.empty or not self.ratings or len(self.features_df)!=len(self.ratings): print(" No rule-based features/ratings for boxplot analysis."); return
key_feats=['text_length','word_count','avg_word_length','vader_compound','textblob_polarity','textblob_subjectivity','positive_word_count','negative_word_count','custom_sentiment_score','2gram_count','3gram_count']
avail_feats=[f for f in key_feats if f in self.features_df.columns];
if not avail_feats: print(" No suitable numeric features for box plotting."); return
nfeats=len(avail_feats); nc=3; nr=math.ceil(nfeats/float(nc)); fig,axes=plt.subplots(nr,nc,figsize=(nc*6.5,nr*5.5),squeeze=False)
fig.suptitle('Boxplot Analysis of Key Rule-Based Features vs. True Star Rating',fontsize=18,fontweight='bold'); ax_flat=axes.flatten()
plot_df=self.features_df[avail_feats].copy(); plot_df['true_rating']=self.ratings
for i,feat_name in enumerate(avail_feats):
ax=ax_flat[i]
try:
sns.boxplot(x='true_rating',y=feat_name,data=plot_df,ax=ax,palette="coolwarm_r",flierprops={'markerfacecolor':'0.50','markersize':3,'marker':'o'})
title=feat_name.replace("_"," ").title(); title+= " (Aggregated Score)" if feat_name=='custom_sentiment_score' else ""
ax.set_title(title,fontsize=14); ax.set_xlabel('True Star Rating',fontsize=12); ax.set_ylabel('Feature Value',fontsize=12); ax.grid(True,linestyle=':',alpha=0.6)
except Exception as e: self.logger.error(f"Error plotting feature '{feat_name}': {e}",exc_info=True); ax.text(0.5,0.5,f"Error plotting\n{feat_name}",ha='center',va='center',transform=ax.transAxes)
for j in range(i+1,len(ax_flat)): ax_flat[j].set_visible(False)
plt.tight_layout(rect=[0,0,1,0.96]); plt.savefig(os.path.join(self.results_dir,'rule_features_vs_rating_boxplots.png'),dpi=300,bbox_inches='tight')
if is_jupyter_environment(): plt.show(); plt.close(fig)
def _plot_additional_feature_visuals(self) -> None:
if self.features_df.empty or not matplotlib_available:
self.logger.warning("Skipping additional feature visuals: features_df empty or matplotlib unavailable.")
return
numerical_features_df = self.features_df.select_dtypes(include=np.number)
if numerical_features_df.empty:
self.logger.warning("Skipping additional feature visuals: No numerical features found.")
return
key_dist_features = ['vader_compound', 'textblob_polarity', 'custom_sentiment_score',
'positive_word_count', 'negative_word_count', 'word_count', 'text_length',
'intensifier_count', 'negation_count', 'sentiment_ratio']
plotted_dist_features = []
num_key_feats_to_plot = len([f for f in key_dist_features if f in numerical_features_df.columns])
if num_key_feats_to_plot > 0:
ncols_dist = min(3, num_key_feats_to_plot)
nrows_dist = math.ceil(num_key_feats_to_plot / ncols_dist)
fig_dist, axes_dist = plt.subplots(nrows_dist, ncols_dist, figsize=(ncols_dist * 6, nrows_dist * 5), squeeze=False)
axes_flat_dist = axes_dist.flatten()
feat_idx = 0
for feat_name in key_dist_features:
if feat_name in numerical_features_df.columns:
sns.histplot(numerical_features_df[feat_name], kde=True, ax=axes_flat_dist[feat_idx], bins=min(30, numerical_features_df[feat_name].nunique()))
axes_flat_dist[feat_idx].set_title(f'Distribution of {feat_name.replace("_", " ").title()}', fontsize=11)
axes_flat_dist[feat_idx].set_xlabel(feat_name, fontsize=10)
axes_flat_dist[feat_idx].set_ylabel('Frequency', fontsize=10)
plotted_dist_features.append(feat_name)
feat_idx += 1
for i in range(feat_idx, nrows_dist * ncols_dist):
fig_dist.delaxes(axes_flat_dist[i])
fig_dist.suptitle('Distribution of Key Numerical Features', fontsize=16, fontweight='bold')
plt.tight_layout(rect=[0, 0, 1, 0.95])
dist_plot_path = os.path.join(self.results_dir, 'key_features_distributions.png')
plt.savefig(dist_plot_path, dpi=300)
if is_jupyter_environment(): plt.show()
plt.close(fig_dist)
self.logger.info(f"Key feature distribution plots saved to {dist_plot_path}")
else:
self.logger.info("No key features found for distribution plots.")
if len(numerical_features_df.columns) > 30:
if plotted_dist_features:
cols_for_corr = [col for col in plotted_dist_features if col in numerical_features_df.columns]
if len(cols_for_corr) < 30:
remaining_cols = [col for col in numerical_features_df.columns if col not in cols_for_corr]
if remaining_cols:
try:
variances = numerical_features_df[remaining_cols].var().sort_values(ascending=False)
cols_for_corr.extend(variances.head(30 - len(cols_for_corr)).index.tolist())
except Exception:
cols_for_corr.extend(np.random.choice(remaining_cols, size=min(len(remaining_cols), 30 - len(cols_for_corr)), replace=False).tolist())
else:
cols_for_corr_all = numerical_features_df.columns.tolist()
try:
variances = numerical_features_df.var().sort_values(ascending=False)
cols_for_corr = variances.head(30).index.tolist()
except Exception:
cols_for_corr = np.random.choice(cols_for_corr_all, size=min(len(cols_for_corr_all),30), replace=False).tolist()
corr_features_df = numerical_features_df[cols_for_corr]
else:
corr_features_df = numerical_features_df
if len(corr_features_df.columns) > 1 :
correlation_matrix = corr_features_df.corr()
fig_corr_height = max(8, len(corr_features_df.columns) * 0.4)
fig_corr_width = max(10, len(corr_features_df.columns) * 0.5)
fig_corr, ax_corr = plt.subplots(figsize=(fig_corr_width, fig_corr_height))
sns.heatmap(correlation_matrix, annot=True, cmap='coolwarm', fmt=".2f", linewidths=.5, ax=ax_corr, annot_kws={"size": 8 if len(corr_features_df.columns) < 20 else 6})
ax_corr.set_title('Correlation Heatmap of Numerical Features', fontsize=14, fontweight='bold')
plt.xticks(rotation=45, ha="right", fontsize=9)
plt.yticks(rotation=0, fontsize=9)
plt.tight_layout()
corr_plot_path = os.path.join(self.results_dir, 'numerical_features_correlation_heatmap.png')
plt.savefig(corr_plot_path, dpi=300)
if is_jupyter_environment(): plt.show()
plt.close(fig_corr)
self.logger.info(f"Feature correlation heatmap saved to {corr_plot_path}")
else:
self.logger.info("Not enough numerical features (need >1) for a correlation heatmap.")
def _plot_category_analysis(self)->None:
if not self.categories or not self.ratings or len(self.categories)!=len(self.ratings): print(" No categories/ratings for analysis."); return
df_cat=pd.DataFrame({'category':self.categories,'rating':self.ratings}); cat_stats=df_cat.groupby('category')['rating'].agg(count='size',avg_rating='mean',std_rating='std').reset_index()
cat_stats_filt=cat_stats[cat_stats['count']>=50].sort_values('count',ascending=False).head(10)
if cat_stats_filt.empty: print(" No categories meet min review count (50) for plot."); return
fig,axes=plt.subplots(1,2,figsize=(20,9)); fig.suptitle('Product Category Performance Analysis (Filtered by Min. 50 Reviews)',fontsize=18,fontweight='bold')
try:
sns.barplot(x='count',y='category',data=cat_stats_filt,ax=axes[0],palette="viridis",orient='h',dodge=False)
axes[0].set_title('Review Count (Top Filtered Categories)',fontsize=14); axes[0].set_xlabel('# Reviews'); axes[0].set_ylabel('Product Category')
max_cat_count = cat_stats_filt['count'].max() if not cat_stats_filt.empty else 1
for i,val in enumerate(cat_stats_filt['count']): axes[0].text(val+max_cat_count*0.01,i,f"{val:,}",va='center',fontsize=9)
axes[0].grid(axis='x',ls='--',alpha=0.7)
except Exception as e: self.logger.error(f"Category count bar plot error: {e}",exc_info=True)
try:
sp=axes[1].scatter(cat_stats_filt['avg_rating'],cat_stats_filt['count'],s=cat_stats_filt['count']*0.3+100,c=cat_stats_filt['avg_rating'],cmap='coolwarm_r',alpha=0.85,edgecolors='black',linewidth=0.7)
axes[1].set_title('Avg Rating vs. Review Count (Top Filtered Categories)',fontsize=14); axes[1].set_xlabel('Avg Star Rating'); axes[1].set_ylabel('# Reviews (Log Scale)'); axes[1].set_yscale('log'); axes[1].grid(True,ls=':',alpha=0.6)
for _,row in cat_stats_filt.iterrows(): axes[1].annotate(row['category'],(row['avg_rating'],row['count']),textcoords="offset points",xytext=(0,8),ha='center',fontsize=9,color='dimgray')
cbar=fig.colorbar(sp,ax=axes[1],label='Average Rating',pad=0.02); cbar.ax.tick_params(labelsize=9)
except Exception as e: self.logger.error(f"Category scatter plot error: {e}",exc_info=True)
plt.tight_layout(rect=[0,0,1,0.95]); plt.savefig(os.path.join(self.results_dir,'category_performance_analysis.png'),dpi=300,bbox_inches='tight')
if is_jupyter_environment(): plt.show(); plt.close(fig)
def _plot_model_comparison_details(self)->None:
if not hasattr(self,'evaluation_results') or not self.evaluation_results: print(" No eval results for model comparison."); return
if self.evaluator:
self.evaluator.plot_radar_chart(self.evaluation_results)
else:
self.logger.warning("ModelEvaluator instance not available, cannot plot radar chart.")
models_eval = list(self.evaluation_results.keys())
if not models_eval: print(" No models evaluated; cannot create comparison heatmap/bar charts."); return
metrics_comp=['accuracy','close_accuracy','mae','rmse','f1_macro','f1_weighted','f1_close','kappa']; disp_names=['Exact Acc.','+/-1 Star Acc.','MAE','RMSE','F1 (Macro)','F1 (Weighted)','F1 (+/-1 Acc.)','Kappa']; higher_better=[True,True,False,False,True,True,True,True]
comp_data=[{'Model':mn, **{mc:self.evaluation_results[mn].get('metrics',{}).get(mc,np.nan) for mc in metrics_comp}} for mn in models_eval]
comp_df = pd.DataFrame(comp_data).set_index('Model')
if comp_df.empty: print(" Comparison DataFrame empty."); return
heatmap_df=comp_df.copy()
for idx,mcol in enumerate(metrics_comp):
valid_v=heatmap_df[mcol].dropna()
if not valid_v.empty:
min_v,max_v=valid_v.min(),valid_v.max()
if max_v>min_v: norm_s=(valid_v-min_v)/(max_v-min_v); heatmap_df[mcol]=1-norm_s if not higher_better[idx] else norm_s
else: heatmap_df[mcol]=0.5
else: heatmap_df[mcol]=np.nan
fig_hm=None
try:
fig_hm,ax_hm = plt.subplots(figsize=(16,9)); sns.heatmap(heatmap_df.T,annot=comp_df.T,fmt='.3f',cmap='RdYlGn',center=0.5,linewidths=.5,linecolor='gray',cbar_kws={'label':'Normalized Performance (Higher is Better)'},ax=ax_hm,annot_kws={"size":9})
ax_hm.set_title('Model Performance Comparison (Annotation: Raw Value; Color: Normalized)',fontsize=16,fontweight='bold',pad=20); ax_hm.set_xticklabels(ax_hm.get_xticklabels(),rotation=45,ha="right",fontsize=10); ax_hm.set_yticklabels(disp_names,rotation=0,fontsize=10)
plt.tight_layout(); plt.savefig(os.path.join(self.results_dir,'model_comparison_heatmap_detailed.png'),dpi=300,bbox_inches='tight')
if is_jupyter_environment(): plt.show()
except Exception as e: self.logger.error(f"Model comparison heatmap error: {e}",exc_info=True)
finally:
if fig_hm: plt.close(fig_hm)
n_metrics_bar=len(metrics_comp); nc_bar=min(3,n_metrics_bar); nr_bar=math.ceil(n_metrics_bar/float(nc_bar))
fig_bar,axes_bar = plt.subplots(nr_bar,nc_bar,figsize=(nc_bar*6.5,nr_bar*5.5),squeeze=False); axes_bar_flat=axes_bar.flatten()
fig_bar.suptitle('Detailed Model Performance: Metric-by-Metric Comparison',fontsize=18,fontweight='bold')
bar_cols=sns.color_palette("Paired",len(models_eval))
for i_mbar,(mkey,mdisp) in enumerate(zip(metrics_comp,disp_names)):
ax_curr=axes_bar_flat[i_mbar]
try:
mvals=comp_df[mkey].sort_values(ascending=not higher_better[i_mbar])
bars=ax_curr.bar(mvals.index,mvals.values,color=[bar_cols[models_eval.index(mn)] for mn in mvals.index],alpha=0.9,width=0.6)
ax_curr.set_title(mdisp,fontsize=14); ax_curr.set_ylabel('Metric Score',fontsize=12); ax_curr.set_xticklabels(mvals.index,rotation=45,ha='right',fontsize=10); ax_curr.grid(axis='y',ls=':',alpha=0.7)
for bar_item in bars: yv=bar_item.get_height(); ax_curr.text(bar_item.get_x()+bar_item.get_width()/2.,yv,f'{yv:.3f}',ha='center',va='bottom' if yv>=0 else 'top',fontsize=9) if pd.notna(yv) else None
except Exception as e: self.logger.error(f"Bar plot for '{mdisp}' error: {e}",exc_info=True); ax_curr.text(0.5,0.5,f"Error plotting\n{mdisp}",ha='center',va='center',transform=ax_curr.transAxes)
for j in range(i_mbar+1,len(axes_bar_flat)): axes_bar_flat[j].set_visible(False)
plt.tight_layout(rect=[0,0,1,0.95]); plt.savefig(os.path.join(self.results_dir,'model_comparison_barcharts_detailed.png'),dpi=300,bbox_inches='tight')
if is_jupyter_environment(): plt.show(); plt.close(fig_bar)
def perform_cross_validation_analysis(self)->None:
display_section_header("STEP 7: Cross-Validation Analysis",1); self.logger.info("Initiating CV analysis.")
if self.features_df.empty or not self.ratings: print("No rule-based features/ratings for CV. Skipping."); self.logger.warning("Skipping CV: Features empty or ratings missing."); return
print("Performing 5-fold CV for selected rule-based models..."); X_cv=self.features_df.select_dtypes(include=[np.number]).fillna(0); y_cv=np.array(self.ratings)
if len(X_cv)!=len(y_cv): print("CV length mismatch. Skipping."); self.logger.error(f"CV length mismatch: X({len(X_cv)}), y({len(y_cv)})."); return
cv_summary={}; cv_folds=5; models_cv={'VADER':SentimentModels.vader_to_stars,'TextBlob':SentimentModels.textblob_to_stars,'Feature-Based':SentimentModels.feature_based_to_stars,'N-gram Enhanced':SentimentModels.ngram_enhanced_to_stars}
skf=StratifiedKFold(n_splits=cv_folds,shuffle=True,random_state=42)
for model_name,model_fn in models_cv.items():
print(f" Cross-validating {model_name}..."); scores={'accuracy':[],'mae':[],'f1_close':[]}
for fold_n,(train_idx,test_idx) in enumerate(skf.split(X_cv,y_cv)):
try:
test_feats=X_cv.iloc[test_idx]; test_true=y_cv[test_idx]; test_preds=[model_fn(row.to_dict()) for _,row in test_feats.iterrows()]
test_preds_arr=np.array(test_preds)
scores['accuracy'].append(np.mean(test_true==test_preds_arr)); scores['mae'].append(mean_absolute_error(test_true,test_preds_arr))
close_acc_bool=np.abs(test_true-test_preds_arr)<=1; scores['f1_close'].append(f1_score(np.ones_like(test_true),close_acc_bool.astype(int),pos_label=1,zero_division=0))
except Exception as e: self.logger.error(f"Error CV fold {fold_n+1} for {model_name}: {e}"); scores['accuracy'].append(np.nan); scores['mae'].append(np.nan); scores['f1_close'].append(np.nan)
if any(not np.isnan(s) for s in scores['accuracy']): cv_summary[model_name]={'accuracy_mean':np.nanmean(scores['accuracy']),'accuracy_std':np.nanstd(scores['accuracy']),'mae_mean':np.nanmean(scores['mae']),'mae_std':np.nanstd(scores['mae']),'f1_close_mean':np.nanmean(scores['f1_close']),'f1_close_std':np.nanstd(scores['f1_close'])}
else: self.logger.warning(f"No valid scores for {model_name} in CV.")
if cv_summary:
cv_df=pd.DataFrame(cv_summary).T; cv_df.columns=['Accuracy (Mean)','Accuracy (Std)','MAE (Mean)','MAE (Std)','F1 Close Acc. (Mean)','F1 Close Acc. (Std)']; cv_df=cv_df.round(4)
print(f"\n--- Cross-Validation Results ({cv_folds}-Fold) ---"); safe_display(cv_df)
cv_csv=os.path.join(self.results_dir,'cross_validation_analysis_results.csv')
try: cv_df.to_csv(cv_csv,encoding='utf-8'); self.logger.info(f"CV results saved: {cv_csv}"); print(f"CV results saved: {cv_csv}")
except Exception as e: self.logger.error(f"Failed to save CV CSV: {e}"); print(f" Warning: Could not save CV CSV: {e}")
else: print("No CV results to display/save."); self.logger.info("CV analysis complete, no results.")
print("Cross-validation analysis phase complete!"); print("-"*60)
def perform_clustering_analysis(self)->None:
display_section_header("STEP 8: Clustering Analysis (on Rule-Based Features)",1); self.logger.info("Initiating clustering analysis.")
if self.features_df.empty: print("No rule-based features for clustering. Skipping."); self.logger.warning("Skipping clustering: Features empty."); return
print("Performing clustering on rule-based features..."); X_cluster=self.features_df.select_dtypes(include=[np.number]).fillna(0)
if X_cluster.empty: print("No numeric features for clustering. Skipping."); self.logger.warning("Clustering skipped: No numeric features."); return
X_scaled=StandardScaler().fit_transform(X_cluster)
max_k=min(10,max(2,len(X_scaled)//100));
if max_k<2: print("Insufficient data for clustering (need at least 2 clusters). Skipping."); self.logger.warning("Clustering skipped: Insufficient data for min 2 clusters."); return
sil_scores=[]; k_range=range(2,max_k+1)
print(f" Determining optimal k in range {k_range} using Silhouette Score...")
for k_iter in k_range:
try:
km=KMeans(n_clusters=k_iter,random_state=42,n_init=10, algorithm='lloyd')
labels=km.fit_predict(X_scaled)
if len(np.unique(labels))>1: sil_scores.append(silhouette_score(X_scaled,labels))
else: sil_scores.append(-1)
except Exception as e: self.logger.error(f"Error KMeans for k={k_iter}: {e}"); sil_scores.append(-1)
if not sil_scores or all(s == -1 for s in sil_scores) or max(sil_scores) < -0.5 :
print("Cannot determine optimal k or all silhouette scores are very low. Clustering aborted.");
self.logger.error("Clustering aborted: Optimal k determination failed or silhouette scores too low."); return
opt_k=k_range[np.argmax(sil_scores)]; best_sil=max(sil_scores); print(f" Optimal k: {opt_k} (Silhouette: {best_sil:.3f})")
final_km=KMeans(n_clusters=opt_k,random_state=42,n_init=10, algorithm='lloyd'); final_labels=final_km.fit_predict(X_scaled)
results=[]; ratings_arr=np.array(self.ratings); cats_arr=np.array(self.categories)
for i_cluster in range(opt_k):
mask=(final_labels==i_cluster); n_members=np.sum(mask)
if n_members==0: continue
ratings_c=ratings_arr[mask]; cats_c=cats_arr[mask]
results.append({'Cluster_ID':int(i_cluster),'Num_Reviews_in_Cluster':int(n_members),'Average_Rating':float(np.mean(ratings_c)) if len(ratings_c)>0 else np.nan,'Rating_StdDev':float(np.std(ratings_c)) if len(ratings_c)>0 else np.nan,'Top_Category':Counter(cats_c).most_common(1)[0][0] if len(cats_c)>0 else 'N/A'})
cluster_df=pd.DataFrame(results); print(f"\n--- Clustering Analysis Summary (k={opt_k}) ---"); safe_display(cluster_df)
output_data={'optimal_k':int(opt_k),'best_silhouette_score':float(best_sil),'cluster_labels_per_review':[int(lbl) for lbl in final_labels.tolist()],'cluster_summary_analysis':results}
json_path=os.path.join(self.results_dir,'clustering_analysis_results.json')
try:
with open(json_path,'w',encoding='utf-8') as f: json.dump(output_data,f,indent=4)
self.logger.info(f"Clustering results saved: {json_path}"); print(f"Clustering results saved: {json_path}")
except Exception as e: self.logger.error(f"Failed to save clustering JSON: {e}"); print(f" Warning: Could not save clustering JSON: {e}")
print("Clustering analysis phase complete!"); print("-"*60)
def generate_report(self)->None:
display_section_header("STEP 9: Generating Analysis Report",1); self.logger.info("Report generation initiated.")
report_md_content=self._create_detailed_report_markdown()
report_path=os.path.join(self.results_dir,'sentiment_analysis_report_transformer_absa.md')
try:
with open(report_path,'w',encoding='utf-8') as f: f.write(report_md_content)
self.logger.info(f"Analysis report saved: {report_path}"); print(f" Analysis report saved: {report_path}")
except Exception as e: self.logger.error(f"Failed to save report: {e}"); print(f" Warning: Could not save report: {e}")
if is_jupyter_environment(): print("\n Report Snippet (first 500 chars):"); display(Markdown(report_md_content[:500]+"\n\n... (Full report saved)"))
self.logger.info(f"Report generation finished: {report_path}"); print("\nReport generation finished!"); print("-"*60)
def _create_detailed_report_markdown(self)->str:
report_md = f"# Sentiment Analysis Report (Transformer & ABSA Enhanced)\n\n**Date Generated:** {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n**Results Directory:** `{self.results_dir}`\n\n---\n\n"
report_md += "## Overview of Pipeline Capabilities\n\nThis pipeline incorporates:\n- **Hybrid Modeling**: Rule-based models combined with Transformer-based models (e.g., RoBERTa) for overall sentiment.\n- **Fine-grained Insights**: Aspect-Based Sentiment Analysis (ABSA) for specific feature sentiment. Includes rule-based fallback if Transformer ABSA model fails.\n- **Worst Prediction Analysis**: Pandas DataFrame table with full review text, and CSVs for error analysis.\n- **Robust Evaluation**: Standard metrics, CV for rule-based models, clustering.\n- **Visualization**: Dashboards (Plotly HTML), static plots for data distributions (including alternative category rating plot), feature importance (including additional feature distributions and heatmap), and model comparisons.\n\n---\n\n## 1. Dataset Overview & Preparation\n"
report_md += f"- **Total Reviews Analyzed:** {len(self.texts):,}\n"
if self.ratings: report_md += f"- **Avg Star Rating:** {np.mean(self.ratings):.2f}\n- **Rating Distribution:**\n" + "".join([f" - {r} Stars: {Counter(self.ratings)[r]:,} ({(Counter(self.ratings)[r]/len(self.ratings))*100:.1f}%)\n" for r in sorted(Counter(self.ratings).keys())])
if self.categories: report_md += "\n- **Product Category Distribution (Top 5):\n" + "".join([f" - {cat.title()}: {cnt:,} ({(cnt/len(self.categories))*100:.1f}%)\n" for cat,cnt in Counter(self.categories).most_common(5)])
report_md += "- **Preprocessing**: Rule-Based (cleaning, token/lemma, stopwords), Transformers (minimal cleaning).\n- **Feature Engineering (Rule-Based)**: Basic stats, VADER/TextBlob scores, lexicon counts, domain terms, linguistic cues, n-grams.\n\n"
report_md += "---\n\n## 2. Sentiment Model Performance (Overall Rating)\n"
if hasattr(self,'evaluation_results') and self.evaluation_results:
best_model,best_f1 = None,-1.0
for mn,rd in self.evaluation_results.items():
f1c = rd.get('metrics',{}).get('f1_close',-1.0)
if f1c>best_f1: best_f1,best_model = f1c,mn
if best_model: report_md += f"**Overall Best Model (F1 +/-1 Star):** **{best_model}** (Score: {best_f1:.4f})\n\n"
headers = ['Model','Accuracy','Close Acc. (+/-1)','MAE','RMSE','F1 Macro','F1 (+/-1 Acc.)','Kappa','Sample Size']
report_md += "### Detailed Performance Metrics:\n| " + " | ".join(headers) + " |\n|-" + "-|-".join(["-"*len(h) for h in headers]) + "-|\n"
key_map = {'Accuracy':'accuracy','Close Acc. (+/-1)':'close_accuracy','MAE':'mae','RMSE':'rmse','F1 Macro':'f1_macro','F1 (+/-1 Acc.)':'f1_close','Kappa':'kappa','Sample Size':'sample_size'}
for mn,rd in self.evaluation_results.items():
m=rd.get('metrics',{}); vals=[mn]+[f"{m.get(key_map[h]):.4f}" if key_map[h]!='sample_size' and isinstance(m.get(key_map[h]),(int,float)) else (f"{m.get(key_map[h]):,}" if key_map[h]=='sample_size' else str(m.get(key_map[h],'N/A'))) for h in headers[1:]]
report_md += "| " + " | ".join(vals) + " |\n"
report_md += "\n- **Worst Predictions Analysis**: Full list of worst predictions (including full review text) displayed as a Pandas table during evaluation. CSVs also saved in `worst_predictions_analysis/`.\n- **Interactive Dashboard**: `interactive_model_dashboard.html` for visual model comparison.\n- **Model Predictions Preview**: Top 50 rows of `model_predictions_with_features.csv` (including full text) displayed in Jupyter output during `run_models` step.\n\n" # FIXED: Changed from 300 to 50
else: report_md += "No model evaluation results for overall rating.\n"
report_md += "\n---\n\n## 3. Aspect-Based Sentiment Analysis (ABSA)\n"
absa_method_used = "Transformer (`yangheng/deberta-v3-base-absa-v1.1`)"
if self.absa_analyzer and self.absa_analyzer.use_rule_based_absa_fallback:
absa_method_used = "Rule-Based Fallback (TextBlob & NLTK)"
elif not (self.absa_analyzer and self.absa_analyzer.absa_pipeline):
absa_method_used = "Not Performed (Transformer model load failed and/or rule-based fallback dependencies not met)"
report_md += f"ABSA Method: {absa_method_used}.\n\n"
if self.absa_results_all_reviews:
report_md += "- **Visualizations**: Sentiment distributions for top aspects in `absa_analysis/`.\n- **Raw Data**: `absa_analysis/absa_raw_results.json`.\n- **Aggregated Data**: `absa_analysis/absa_summary_data.csv`.\n\n"
flat_aspects = [item for sublist in self.absa_results_all_reviews for item in sublist]
if flat_aspects:
df_aspects_rep = pd.DataFrame(flat_aspects); report_md += "**Top 5 Discussed Aspects (Overall):**\n"
for aspect,count in df_aspects_rep['aspect'].value_counts().nlargest(5).items(): report_md += f" - **{aspect}**: {count:,} mentions (Positive: {len(df_aspects_rep[(df_aspects_rep['aspect']==aspect)&(df_aspects_rep['sentiment']=='positive')])}, Negative: {len(df_aspects_rep[(df_aspects_rep['aspect']==aspect)&(df_aspects_rep['sentiment']=='negative')])}, Neutral: {len(df_aspects_rep[(df_aspects_rep['aspect']==aspect)&(df_aspects_rep['sentiment']=='neutral')])})\n"
else: report_md += "ABSA not run or no results generated.\n"
report_md += "\n---\n\n## 4. Advanced Statistical Analyses\n"
cv_path = os.path.join(self.results_dir,'cross_validation_analysis_results.csv')
report_md += "### A. Cross-Validation (CV) Analysis (Rule-Based Models)\n"
if os.path.exists(cv_path):
try:
cv_df = pd.read_csv(cv_path,index_col=0); report_md += "K-fold CV results (Mean +/- Std Dev):\n\n| Model | Accuracy | MAE | F1 Close Acc. |\n|-------|----------|-----|---------------|\n"
for mn,row in cv_df.iterrows(): report_md += f"| {mn} | {row.get('Accuracy (Mean)',0):.3f} +/- {row.get('Accuracy (Std)',0):.3f} | {row.get('MAE (Mean)',0):.3f} +/- {row.get('MAE (Std)',0):.3f} | {row.get('F1 Close Acc. (Mean)',0):.3f} +/- {row.get('F1 Close Acc. (Std)',0):.3f} |\n"
except Exception as e: report_md += f"*Could not load CV results: {e}*\n"
else: report_md += "CV analysis not performed/saved for rule-based models.\n"
cluster_path = os.path.join(self.results_dir,'clustering_analysis_results.json')
report_md += "\n### B. Clustering Analysis (on Rule-Based Features)\n"
if os.path.exists(cluster_path):
try:
with open(cluster_path,'r') as f: data=json.load(f)
report_md += f"K-Means clustering results:\n- **Optimal k:** {data.get('optimal_k','N/A')}\n- **Silhouette Score:** {data.get('best_silhouette_score','N/A'):.3f}\n\n**Cluster Profile Summary:**\n| Cluster ID | Num Reviews | Avg Rating | Top Category |\n|------------|-------------|------------|--------------|\n"
for item in data.get('cluster_summary_analysis',[]): report_md += f"| {item.get('Cluster_ID')} | {item.get('Num_Reviews_in_Cluster'):,} | {item.get('Average_Rating',0.0):.2f} | {item.get('Top_Category','N/A')} |\n"
except Exception as e: report_md += f"*Could not load clustering results: {e}*\n"
else: report_md += "Clustering analysis not performed/saved.\n"
report_md += "\n---\n\n## 5. Technical Notes\n"
report_md += f"- **NLTK Status:** {'Initialized' if NLTK_INITIALIZED else 'Not Initialized/Failed'}\n"
report_md += f"- **Transformer Status:** {'Available' if transformers_available else 'Not Available'}. Device: {TRANSFORMER_DEVICE}\n"
report_md += f"- **TextBlob/Emoji Status:** {'Available' if textproc_available else 'Not Available (limits rule-based ABSA fallback)'}\n"
report_md += f"- **Key Python Libraries Used:** Pandas, NumPy, Scikit-learn, Matplotlib, Seaborn, Plotly, NLTK, TextBlob, Transformers, Torch, Requests.\n"
if hasattr(self,'models_run_successfully'): report_md += f"- **Overall Sentiment Models Executed:** {', '.join(self.models_run_successfully) or 'None'}\n"
report_md += "- **Overall Sentiment Transformer:** `cardiffnlp/twitter-roberta-base-sentiment-latest`.\n"
report_md += "\n---\n\n## 6. Directory & Key Files\nResults in: `{self.results_dir}`\n- `sentiment_analysis_report_transformer_absa.md`: This report.\n- `sentiment_analysis_[timestamp].log`: Log file.\n- `extracted_rule_based_features.csv`.\n- `model_predictions_with_features.csv`.\n- `cross_validation_analysis_results.csv`.\n- `clustering_analysis_results.json`.\n- `interactive_model_dashboard.html`.\n- `worst_predictions_analysis/`: Per-model CSVs of worst predictions.\n- `absa_analysis/`: Raw JSON, aggregated CSV, and plots for ABSA.\n- Various PNG plots for data distributions, feature analysis, model comparisons.\n\n---\n\n## Recommendations & Next Steps\n"
report_md += "1. **Explore Dashboard & Worst Preds**: Use `interactive_model_dashboard.html` and CSVs in `worst_predictions_analysis/`. Full list of worst predictions displayed as table during evaluation.\n2. **Scrutinize ABSA Data**: Review `absa_analysis/` outputs for fine-grained insights.\n3. **Analyze Clusters**: Check `clustering_analysis_results.json` for customer segments.\n\n*Potential Improvements: Advanced ATE for ABSA, fine-tune Transformers, Transformer embeddings as features, advanced ensemble methods, category-specific Transformer models.*\n\n---\n\n*End of Sentiment Analysis Report.*\n"
return report_md.strip()
def run_complete_analysis(self, data_source: str, sample_size: Optional[int] = None,
include_cross_validation: bool = True,
include_clustering: bool = True) -> None:
self.logger.info(f"Starting complete analysis with Transformers & ABSA. Data source: {data_source}, Sample size: {sample_size if sample_size is not None else 'Full Dataset'}")
print(f"\n{'='*20} Starting Sentiment Analysis Pipeline Run (Transformer & ABSA Enhanced) {'='*20}")
overall_start_time = time.time()
try:
self.load_data(data_source,sample_size)
self.preprocess_data()
self.extract_features_for_rule_based_models()
self.run_absa()
self.run_models()
self.evaluate_models()
self.generate_visualizations()
if include_cross_validation:
self.perform_cross_validation_analysis()
else: self.logger.info("Cross-validation analysis skipped as per configuration.")
if include_clustering:
self.perform_clustering_analysis()
else: self.logger.info("Clustering analysis skipped as per configuration.")
self.generate_report()
total_execution_time = time.time() - overall_start_time
self.logger.info(f"Pipeline execution completed successfully in {total_execution_time:.2f} seconds.")
display_section_header("Pipeline Execution Completed Successfully!",1)
print(f"Total Execution Time: {total_execution_time:.2f} seconds ({total_execution_time/60:.2f} minutes).")
print(f"Number of Reviews Processed: {len(self.texts):,}")
print(f"All results, logs, and visualizations saved in directory: {self.results_dir}")
if hasattr(self,'evaluation_results') and self.evaluation_results:
best_model_final, best_f1_close_final = None, -1.0
for model_name_final, eval_data_final in self.evaluation_results.items():
f1_close_score_final = eval_data_final.get('metrics',{}).get('f1_close',-1.0)
if f1_close_score_final > best_f1_close_final:
best_f1_close_final, best_model_final = f1_close_score_final, model_name_final
if best_model_final:
print(f"Best Performing Model (Overall Rating, F1 Score +/-1 Star): **{best_model_final}** (Score: {best_f1_close_final:.4f})")
print(f"\nKEY CAPABILITIES UTILIZED IN THIS RUN:")
print(f" - Rule-Based Sentiment Models with N-gram Features")
if transformers_available and self.roberta_sentiment_predictor and self.roberta_sentiment_predictor.pipeline :
print(f" - Transformer-Based Overall Sentiment Prediction (e.g., RoBERTa)")
else:
print(f" - Transformer-Based Overall Sentiment Prediction (SKIPPED - dependencies not met)")
absa_transformer_ok = self.absa_analyzer and self.absa_analyzer.absa_pipeline and not self.absa_analyzer.use_rule_based_absa_fallback
absa_fallback_ok = self.absa_analyzer and self.absa_analyzer.use_rule_based_absa_fallback and textproc_available and self.absa_analyzer.sent_tokenizer_nltk
if absa_transformer_ok:
print(f" - Fine-grained Aspect-Based Sentiment Analysis (ABSA via Transformer)")
elif absa_fallback_ok:
print(f" - Fine-grained Aspect-Based Sentiment Analysis (ABSA via Rule-Based Fallback)")
else:
print(f" - Fine-grained Aspect-Based Sentiment Analysis (ABSA) (SKIPPED - dependencies not met for Transformer or Fallback)")
print(f" - Worst Prediction Analysis (Full Text Table Display & CSVs)")
if include_cross_validation: print(f" - Cross-Validation Analysis Performed (Rule-Based Models)")
if include_clustering: print(f" - Clustering Analysis Performed (on Rule-Based Features)")
print(f" - Interactive Model Comparison Dashboard (Plotly HTML)")
print(f" - Additional Feature Visualizations (Distributions, Correlation Heatmap)")
print(f" - Display of Top 50 Model Predictions with Full Text in Jupyter") # FIXED: Changed from 300 to 50
print(f" - Display of Top 50 Rule-Based Features with Full Text Preview in Jupyter") # FIXED: Changed from 300 to 50
except Exception as e_pipeline_main:
self.logger.critical(f"CRITICAL PIPELINE ERROR: {e_pipeline_main}", exc_info=True)
print(f"\n{'!'*25} PIPELINE EXECUTION FAILED! {'!'*25}\nError: {e_pipeline_main}")
print(f"Please check the log file in '{self.results_dir}' for detailed error information.")
finally:
print(f"\n{'='*25} End of Pipeline Run {'='*25}")
#%% === DEMONSTRATION ===
def run_pipeline_demo():
print("\n"+"="*70+"\nSENTIMENT ANALYSIS PIPELINE DEMO (Transformer & ABSA Enhanced)\n"+"="*70+"\n")
try: pipeline_instance = SentimentAnalysisPipeline()
except Exception as e: print(f"CRITICAL ERROR: Pipeline init failed: {e}\nDemo cannot continue."); return None
local_data='sentiment_data.csv'; remote_url='https://raw.githubusercontent.com/VaRkanar/datasets_/master/sentiment_data.csv'
data_src = local_data if os.path.exists(local_data) else remote_url; src_type = "(local)" if data_src==local_data else "(remote, will download)"
print(f"Using data source: {data_src} {src_type}")
sample_sz = None
print(f"Demo config - Sample: {'Full Dataset' if sample_sz is None else f'{sample_sz:,}'}")
if sample_sz is None or (isinstance(sample_sz, int) and sample_sz > 50000):
print("WARNING: Processing a large dataset (or full dataset) with Transformers/ABSA can be very time and memory intensive.")
run_cv=True; run_cluster=True
print(f"Analysis features in demo: Cross-Validation={run_cv}, Clustering={run_cluster}\n"+"-"*70)
pipeline_instance.run_complete_analysis(data_source=data_src,sample_size=sample_sz,include_cross_validation=run_cv,include_clustering=run_cluster)
print("\n"+"="*70+"\nDEMONSTRATION RUN COMPLETE\n"+"="*70+f"\nOutputs, logs, reports in: '{pipeline_instance.results_dir}'")
print("\nKey capabilities demonstrated:\n - Rule-Based & Transformer Overall Sentiment\n - ABSA (with Rule-Based Fallback)\n - Worst Prediction Analysis (Full Text Table Display & CSVs)\n - Enhanced Feature Visualizations\n - Top 50 Model Predictions with Full Text Display\n - Top 50 Rule-Based Features with Full Text Preview Display") # FIXED: Changed from 300 to 50
if run_cv: print(" - Cross-Validation (Rule-Based)")
if run_cluster: print(" - Clustering (Rule-Based Features)")
print(" - Interactive Dashboard (Plotly HTML)\n - Markdown Reporting\n - Alternative Rating Distribution Plot")
return pipeline_instance
#%% === JUPYTER NOTEBOOK EXECUTION ===
if __name__ == "__main__" or is_jupyter_environment():
print("\nSentiment Analysis Pipeline (Transformer & ABSA Enhanced) - Script Loaded & Ready")
print("="*70+"\nThis version includes:\n - Transformer Models (e.g., RoBERTa) for overall sentiment.\n - Fine-grained Aspect-Based Sentiment Analysis (ABSA) with rule-based fallback.\n - Worst Prediction Analysis with full review text displayed in a Pandas table.\n - Additional visualizations for rule-based features (distributions, heatmap).\n - Alternative plot for 'Rating Distribution in Top Categories'.\n - Display of Top 50 model predictions with full text in Jupyter output.\n - Display of Top 50 rule-based features with full text preview in Jupyter output.\n - Option to use the full dataset (sample_size=None).\n - Preserved rule-based models and evaluation features.\n - Cross-Validation and Clustering analyses.\n - Interactive Model Comparison Dashboard (Plotly HTML).\n - Comprehensive Markdown Reporting.\n"+"="*70) # FIXED: Changed from 300 to 50
print("\nTo execute in Jupyter:\n1. Run CELL 1 (this cell).\n2. Sequentially execute CELLs 2-10.\n3. Or call `run_pipeline_demo()` for automated run.")
print("\nIf running as standalone script: Uncomment `run_pipeline_demo()` at script end.")
# CELL 2 (Recommended for Jupyter)
if is_jupyter_environment() or __name__ == "__main__":
if 'pipeline' not in locals() or not isinstance(pipeline, SentimentAnalysisPipeline):
pipeline = SentimentAnalysisPipeline()
print(f"\nPipeline instance ('pipeline') created. Results in: {pipeline.results_dir}")
else:
print("\nPipeline instance already exists.")
# CELL 3
DATA_SOURCE_NOTEBOOK = 'sentiment_data.csv'
if not os.path.exists(DATA_SOURCE_NOTEBOOK):
print(f"Local file '{DATA_SOURCE_NOTEBOOK}' not found. Using remote URL as fallback for notebook execution.")
DATA_SOURCE_NOTEBOOK = 'https://raw.githubusercontent.com/VaRkanar/datasets_/master/sentiment_data.csv'
SAMPLE_SIZE_NOTEBOOK = None
print(f"Notebook Cell 3: Using data_source = '{DATA_SOURCE_NOTEBOOK}'")
print(f"Notebook Cell 3: Using sample_size = {'Full Dataset' if SAMPLE_SIZE_NOTEBOOK is None else f'{SAMPLE_SIZE_NOTEBOOK:,}'}")
if 'pipeline' in locals() and isinstance(pipeline,SentimentAnalysisPipeline):
try:
pipeline.load_data(DATA_SOURCE_NOTEBOOK,SAMPLE_SIZE_NOTEBOOK)
except Exception as e:
print(f"Error in Cell 3 (load_data): {e}")
pipeline.logger.error(f"Error in Cell 3 (load_data): {e}", exc_info=True)
else: print("Warning: Pipeline not initialized. Run CELL 2 first.")
# CELL 4
if 'pipeline' in locals() and hasattr(pipeline,'texts') and pipeline.texts:
try:
pipeline.preprocess_data()
except Exception as e:
print(f"Error in Cell 4 (preprocess_data): {e}")
pipeline.logger.error(f"Error in Cell 4 (preprocess_data): {e}", exc_info=True)
else: print("Warning: No data loaded or pipeline not initialized. Run CELLs 2 & 3 first.")
# CELL 5 (Feature Extraction & ABSA)
if 'pipeline' in locals() and hasattr(pipeline,'texts') and pipeline.texts:
try:
pipeline.extract_features_for_rule_based_models()
pipeline.run_absa()
except Exception as e:
print(f"Error in Cell 5 (extract_features_for_rule_based_models or run_absa): {e}")
pipeline.logger.error(f"Error in Cell 5: {e}", exc_info=True)
else: print("Warning: Original text data not available. Run previous cells.")
# CELL 6
if 'pipeline' in locals() and ((hasattr(pipeline,'features_df') and not pipeline.features_df.empty) or \
(hasattr(pipeline,'roberta_sentiment_predictor') and pipeline.roberta_sentiment_predictor and pipeline.roberta_sentiment_predictor.pipeline)):
try:
pipeline.run_models()
except Exception as e:
print(f"Error in Cell 6 (run_models): {e}")
pipeline.logger.error(f"Error in Cell 6 (run_models): {e}", exc_info=True)
else: print("Warning: Features or Transformer model not ready. Run previous cells.")
# CELL 7
if 'pipeline' in locals() and hasattr(pipeline,'final_df') and not pipeline.final_df.empty:
try:
pipeline.evaluate_models()
except Exception as e:
print(f"Error in Cell 7 (evaluate_models): {e}")
pipeline.logger.error(f"Error in Cell 7 (evaluate_models): {e}", exc_info=True)
else: print("Warning: Models not run or final_df not available. Run CELL 6 first.")
# CELL 8
if 'pipeline' in locals() and hasattr(pipeline,'texts') and pipeline.texts:
try:
pipeline.generate_visualizations()
except Exception as e:
print(f"Error in Cell 8 (generate_visualizations): {e}")
pipeline.logger.error(f"Error in Cell 8 (generate_visualizations): {e}", exc_info=True)
else: print("Warning: Insufficient data for visualizations.")
# CELL 9 (CV and Clustering)
if 'pipeline' in locals() and hasattr(pipeline,'features_df') and (not pipeline.features_df.empty or pipeline.roberta_sentiment_predictor is not None) :
try:
print("\n--- Starting Cross-Validation Analysis (Rule-Based Models) ---"); pipeline.perform_cross_validation_analysis()
print("\n--- Starting Clustering Analysis (on Rule-Based Features) ---"); pipeline.perform_clustering_analysis()
except Exception as e:
print(f"Error in Cell 9 (CV/Clustering): {e}")
pipeline.logger.error(f"Error in Cell 9 (CV/Clustering): {e}", exc_info=True)
else: print("Warning: Features DataFrame not available for CV or Clustering. Run relevant previous cells.")
# CELL 10
if 'pipeline' in locals():
try:
pipeline.generate_report()
except Exception as e:
print(f"Error in Cell 10 (generate_report): {e}")
pipeline.logger.error(f"Error in Cell 10 (generate_report): {e}", exc_info=True)
else: print("Warning: Pipeline instance not available. Cannot generate report.")
# --- Main execution guard for standalone script running ---
if __name__ == "__main__" and not is_jupyter_environment():
print("\nThis script is best experienced in a Jupyter Notebook or IPython environment.")
print("To run the full demo in script mode, uncomment the line below.")
# run_pipeline_demo()
pass